#pragma once
#include "il2cpp-config.h"
#include "il2cpp-intrinsics-config.h"

#include "codegen/il2cpp-codegen-metadata.h"
namespace il2cpp
{
namespace intrinsics
{
namespace System_Private_CoreLib
{
namespace System
{
namespace Runtime
{
namespace Intrinsics
{
namespace Arm
{
    /* METHOD MAPPING
        Method: System.Boolean System.Runtime.Intrinsics.Arm.AdvSimd::get_IsSupported()
        AssemblyName: System.Private.CoreLib
    */
    inline bool il2cpp_intrinsic_adv_simd_get_is_supported()
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return true;
#else
        return false;
#endif
    }

    /* METHOD MAPPING
        Method: System.Byte System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vgetq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8_t, TRet, vgetq_lane_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Byte System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8_t, TRet, vget_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8_t, TRet, vget_lane_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Double System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_34F90(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vgetq_lane_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vgetq_lane_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_34F90(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64_t, TRet, vgetq_lane_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Int16 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vgetq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16_t, TRet, vgetq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Int16 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vget_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vget_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vget_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16_t, TRet, vget_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16_t, TRet, vget_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Int32 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32_t, TRet, vgetq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32_t, TRet, vgetq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32_t, TRet, vgetq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32_t, TRet, vgetq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32_t, TRet, vgetq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Int32 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32_t, TRet, vget_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32_t, TRet, vget_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32_t, TRet, vget_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Int64 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vgetq_lane_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vgetq_lane_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64_t, TRet, vgetq_lane_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vabsq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vabdq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vabdq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_1BA1A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vabaq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vaddq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_upper_A0FBB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vaddhn_high_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_upper_A0FBB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vraddhn_high_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqaddq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vandq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vbicq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_1BA1A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vbslq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vceqq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcgtq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcgeq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcltq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcleq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vtstq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vdupq_laneq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vdupq_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vdupq_lane_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_E80A2(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vdupq_n_u8(
                INTRINSIC_CAST(TArg1, uint8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_unsigned_upper_93AB6(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqmovun_high_s16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_upper_C965C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqmovn_high_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_upper_C965C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vmovn_high_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vextq_s8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vhaddq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrhaddq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vhsubq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_2DED8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsetq_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_2DED8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsetq_lane_u8(
                INTRINSIC_CAST(TArg3, uint8_t, arg3),
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vclzq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte,System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_E4A4E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vld1q_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_E4A4E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vld1q_lane_u8(
                INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vld1q_dup_u8(
                INTRINSIC_CAST(TArg1, uint8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vld1q_u8(
                INTRINSIC_CAST(TArg1, uint8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vmaxq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vminq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vmulq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_1BA1A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vmlaq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_1BA1A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vmlsq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vmvnq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vorrq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vornq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiply(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly8x16_t, TRet, vmulq_p8(
                INTRINSIC_CAST(TArg1, poly8x16_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::PopCount(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_pop_count_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcntq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsliq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsliq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vshlq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshlq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshlq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshluq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshluq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_A0EC1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_A0EC1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_A0EC1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqrshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_A0EC1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsriq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsriq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_upper_4AED9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_upper_4AED9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshrun_high_n_s16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_upper_4AED9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrun_high_n_s16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_upper_4AED9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqrshrun_high_n_s16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vshrq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsraq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshrn_high_n_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vshrn_high_n_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrshrq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_D3646(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrsraq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqrshrn_high_n_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_2643D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrshrn_high_n_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsubq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_upper_A0FBB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsubhn_high_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_upper_A0FBB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrsubhn_high_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqsubq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, veorq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vandq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vbicq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_552DF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vbslq_f64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                INTRINSIC_CAST(TArg3, float64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_A3CAA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vextq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vextq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_A3CAA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vextq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte,System.Double)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_E8AB6(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vsetq_lane_f64(
                        INTRINSIC_CAST(TArg3, float64_t, arg3),
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vsetq_lane_f64(
                        INTRINSIC_CAST(TArg3, float64_t, arg3),
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_E8AB6(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vsetq_lane_f64(
                INTRINSIC_CAST(TArg3, float64_t, arg3),
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::InsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_scalar_B78C8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: There is a constant of 0 for the arg4 for all calls
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vcopyq_lane_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        0,
                        INTRINSIC_CAST(TArg3, float64x1_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vcopyq_lane_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        1,
                        INTRINSIC_CAST(TArg3, float64x1_t, arg3),
                        0
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_scalar_B78C8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: There is a constant of 0 for the arg4 for all calls
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vcopyq_lane_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, float64x1_t, arg3),
                0
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte,System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_FB0DB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vld1q_lane_f64(
                        INTRINSIC_CAST(TArg3, float64_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vld1q_lane_f64(
                        INTRINSIC_CAST(TArg3, float64_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_FB0DB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vld1q_lane_f64(
                INTRINSIC_CAST(TArg3, float64_t const *, arg3),
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vld1q_f64(
                INTRINSIC_CAST(TArg1, float64_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmvnq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vorrq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vornq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, veorq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_saturate_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqabsq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_E0525(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabaq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_and_add_58E32(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabal_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_and_add_8A0D7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabal_high_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vaddq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_upper_7EC2C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vaddhn_high_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vpaddlq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_9B250(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vpadalq_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_upper_7EC2C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vraddhn_high_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqaddq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_07D81(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vaddw_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vaddl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_9B250(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vaddw_high_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vaddl_high_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vandq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vbicq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_E0525(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vbslq_s16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vceqq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcgtq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcgeq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcltq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcleq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vtstq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vdupq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vdupq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vdupq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.Int16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_387BE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vdupq_n_s16(
                INTRINSIC_CAST(TArg1, int16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_upper_18C1E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqmovn_high_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_upper_18C1E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmovn_high_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vextq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vhaddq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vrhaddq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vhsubq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte,System.Int16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_5EB19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsetq_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_5EB19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vsetq_lane_s16(
                INTRINSIC_CAST(TArg3, int16_t, arg3),
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingSignCount(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_sign_count_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vclsq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vclzq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte,System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_917C1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vld1q_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_917C1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vld1q_lane_s16(
                INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vld1q_dup_s16(
                INTRINSIC_CAST(TArg1, int16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vld1q_s16(
                INTRINSIC_CAST(TArg1, int16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmaxq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vminq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmulq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_E0525(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlaq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_92561(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmlaq_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlaq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                vduph_lane_u16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_1B104(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_1B104(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlaq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_914FE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlaq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_914FE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlaq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_3AC04(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vmulq_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmulq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                vduph_lane_u16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vmulq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmulq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vmulq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_scalar_saturate_high_3AC04(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vqdmulhq_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqdmulhq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                vduph_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqdmulhq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqdmulhq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_saturate_high_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqdmulhq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_scalar_saturate_high_3AC04(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vqrdmulhq_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqrdmulhq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                vduph_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqrdmulhq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrdmulhq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqrdmulhq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_saturate_high_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqrdmulhq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_E0525(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlsq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_92561(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmlsq_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlsq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                vduph_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_1B104(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_1B104(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlsq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_914FE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vmlsq_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_914FE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlsq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmull_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_add_58E32(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlal_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_subtract_58E32(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlsl_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmull_high_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_add_8A0D7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlal_high_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_subtract_8A0D7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmlsl_high_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vnegq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::NegateSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_saturate_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqnegq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmvnq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vorrq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vornq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_widening_lower_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly16x8_t, TRet, vmull_p8(
                INTRINSIC_CAST(TArg1, poly8x8_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_widening_upper_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly16x8_t, TRet, vmull_high_p8(
                INTRINSIC_CAST(TArg1, poly8x16_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrev16q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vshlq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vrshlq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqrshlq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqshlq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsliq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vsliq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vshlq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshlq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqshlq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vshll_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshll_high_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vshll_high_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqrshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsriq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vsriq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vshrq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vsraq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqshrn_high_n_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vrshrq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrsraq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vrsraq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vqrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vqrshrn_high_n_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshrq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsraq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshrn_high_n_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vshrn_high_n_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrshrq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrsraq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqrshrn_high_n_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x8_t, TRet, vrshrn_high_n_s32(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_690F1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vrshrn_high_n_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SignExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sign_extend_widening_lower_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmovl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sign_extend_widening_upper_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vmovl_high_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vsubq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_upper_7EC2C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vsubhn_high_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_upper_7EC2C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vrsubhn_high_s32(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vqsubq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_07D81(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vsubw_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vsubl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_9B250(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vsubw_high_s8(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vsubl_high_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, veorq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_lower_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmovl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_upper_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmovl_high_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_saturate_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqabsq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_5D9DC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabaq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_and_add_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabal_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_and_add_EBFA9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabal_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vaddq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_upper_155B5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vaddhn_high_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                INTRINSIC_CAST(TArg3, int64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vpaddlq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_7773D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vpadalq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_upper_155B5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vraddhn_high_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                INTRINSIC_CAST(TArg3, int64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqaddq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_91936(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vaddw_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vaddl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vaddl_high_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_7773D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vaddw_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vandq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vbicq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_5D9DC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vbslq_s32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vceqq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcgtq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcgeq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcltq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcleq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vtstq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_away_from_zero_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vcvtaq_s32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToEven(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_even_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vcvtnq_s32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_negative_infinity_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vcvtmq_s32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_positive_infinity_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vcvtpq_s32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToZero(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_zero_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vcvtq_s32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vdupq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vdupq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vdupq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vdupq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vdupq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vdupq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vdupq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vdupq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.Int32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_F64C6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vdupq_n_s32(
                INTRINSIC_CAST(TArg1, int32_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_upper_4A940(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqmovn_high_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_upper_4A940(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmovn_high_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vextq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vhaddq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vrhaddq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vhsubq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte,System.Int32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_41DA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsetq_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsetq_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsetq_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsetq_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_41DA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vsetq_lane_s32(
                INTRINSIC_CAST(TArg3, int32_t, arg3),
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingSignCount(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_sign_count_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vclsq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vclzq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte,System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_20A38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vld1q_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vld1q_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vld1q_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vld1q_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_20A38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vld1q_lane_s32(
                INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vld1q_dup_s32(
                INTRINSIC_CAST(TArg1, int32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vld1q_s32(
                INTRINSIC_CAST(TArg1, int32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmaxq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vminq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmulq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_5D9DC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlaq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_5CB0D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmlaq_n_s32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlaq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                vdups_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_66727(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlaq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlaq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlaq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlaq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_66727(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlaq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_3FCFA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlaq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlaq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_3FCFA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlaq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_1951E(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vmulq_n_s32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmulq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                vdups_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmulq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmulq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmulq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmulq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmulq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmulq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmulq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmulq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmull_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmull_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlal_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlal_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsl_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsl_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmull_high_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmull_high_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlal_high_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlal_high_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsl_high_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsl_high_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_scalar_saturate_high_1951E(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vqdmulhq_n_s32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmulhq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                vdups_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmulhq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmulhq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmulhq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmulhq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_saturate_high_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmulhq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_and_add_saturate_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_and_subtract_saturate_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_scalar_and_add_saturate_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vqdmlal_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_n_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                vduph_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_scalar_and_subtract_saturate_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vqdmlsl_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_n_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                vduph_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_06AC8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_6DB31(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLowerByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vqdmull_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                vduph_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_high_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpperByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_scalar_3AC04(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vqdmull_high_n_s16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_high_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                vduph_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_22FB7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_high_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmull_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_4D1EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmull_high_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_and_add_saturate_EBFA9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_and_subtract_saturate_EBFA9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_scalar_and_add_saturate_FC3E4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_high_n_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                vget_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_scalar_and_subtract_saturate_FC3E4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_high_n_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                vget_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_high_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlal_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlal_high_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_62CF1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_high_laneq_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqdmlsl_high_lane_s16(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_A9D9D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqdmlsl_high_lane_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_scalar_saturate_high_1951E(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqrdmulhq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrdmulhq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqrdmulhq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrdmulhq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrdmulhq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqrdmulhq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_saturate_high_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqrdmulhq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_5D9DC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_5CB0D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_66727(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsq_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_66727(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_3FCFA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vmlsq_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_3FCFA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmull_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_add_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlal_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_subtract_5D545(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsl_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmull_high_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_add_EBFA9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlal_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_subtract_EBFA9(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmlsl_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vnegq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::NegateSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_saturate_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqnegq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmvnq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vorrq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vornq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vrev32q_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrev32q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vshlq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vrshlq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqrshlq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqshlq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsliq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vsliq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshlq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqshlq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vshll_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshll_high_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vshll_high_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqrshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsriq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vsriq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vshrq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vsraq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqshrn_high_n_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vrshrq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrsraq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vrsraq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vqrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vqrshrn_high_n_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshrq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsraq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshrn_high_n_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vshrn_high_n_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrshrq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrsraq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqrshrn_high_n_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x4_t, TRet, vrshrn_high_n_s64(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_536C4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vrshrn_high_n_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SignExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sign_extend_widening_lower_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmovl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sign_extend_widening_upper_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vmovl_high_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vsubq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_upper_155B5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vsubhn_high_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                INTRINSIC_CAST(TArg3, int64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_upper_155B5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vrsubhn_high_s64(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                INTRINSIC_CAST(TArg3, int64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vqsubq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_91936(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vsubw_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vsubl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vsubl_high_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_7773D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vsubw_high_s16(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, veorq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_lower_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmovl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_upper_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmovl_high_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_and_add_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vabal_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_and_add_73B50(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vabal_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vaddq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vpaddlq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_D8213(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vpadalq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqaddq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_DF2FE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vaddw_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vaddl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vaddl_high_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_D8213(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vaddw_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vandq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vbicq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_AD1C8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vbslq_s64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                INTRINSIC_CAST(TArg3, int64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vextq_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vextq_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vextq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte,System.Int64)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_DF76A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsetq_lane_s64(
                        INTRINSIC_CAST(TArg3, int64_t, arg3),
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsetq_lane_s64(
                        INTRINSIC_CAST(TArg3, int64_t, arg3),
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_DF76A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vsetq_lane_s64(
                INTRINSIC_CAST(TArg3, int64_t, arg3),
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::InsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_scalar_7D31B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: There is a constant of 0 for the arg4 for all calls
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vcopyq_lane_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0,
                        INTRINSIC_CAST(TArg3, int64x1_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vcopyq_lane_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1,
                        INTRINSIC_CAST(TArg3, int64x1_t, arg3),
                        0
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_scalar_7D31B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: There is a constant of 0 for the arg4 for all calls
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vcopyq_lane_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, int64x1_t, arg3),
                0
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte,System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_27E92(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vld1q_lane_s64(
                        INTRINSIC_CAST(TArg3, int64_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vld1q_lane_s64(
                        INTRINSIC_CAST(TArg3, int64_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_27E92(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vld1q_lane_s64(
                INTRINSIC_CAST(TArg3, int64_t const *, arg3),
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vld1q_s64(
                INTRINSIC_CAST(TArg1, int64_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmull_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmull_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlal_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlal_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlsl_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlsl_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmull_high_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmull_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmull_high_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlal_high_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlal_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlal_high_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlsl_high_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vmlsl_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlsl_high_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_and_add_saturate_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_and_subtract_saturate_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_scalar_and_add_saturate_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_n_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_scalar_and_subtract_saturate_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_n_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_add_saturate_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_1FEFF(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningLowerBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_lower_by_selected_scalar_and_subtract_saturate_5D337(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLowerByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateLowerBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_lower_by_selected_scalar_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_high_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpperByScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_scalar_1951E(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_high_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_BBF2E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_high_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningSaturateUpperBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmull_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_saturate_upper_by_selected_scalar_07729(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmull_high_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_and_add_saturate_73B50(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_and_subtract_saturate_73B50(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperByScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_scalar_and_add_saturate_0204E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_high_n_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperByScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_scalar_and_subtract_saturate_0204E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_high_n_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_high_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlal_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_add_saturate_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlal_high_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_high_laneq_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_CCC3F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_high_laneq_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingWideningUpperBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqdmlsl_high_lane_s32(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_widening_upper_by_selected_scalar_and_subtract_saturate_45D05(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqdmlsl_high_lane_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmull_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_add_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlal_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_subtract_92707(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlsl_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmull_high_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_add_73B50(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlal_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_subtract_73B50(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmlsl_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmvnq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vorrq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vornq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vrev64q_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement32(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element32_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vrev64q_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrev64q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vshlq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vrshlq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqrshlq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqshlq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsliq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vsliq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vshlq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vqshlq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vqshlq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vshll_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshll_high_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vshll_high_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vrshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqrshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsriq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vsriq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vshrq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vsraq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrshrq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vrshrq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vrsraq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vrsraq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshrq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsraq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vrshrq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_D2B9C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vrsraq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SignExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sign_extend_widening_lower_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmovl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SignExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sign_extend_widening_upper_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vmovl_high_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vsubq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqsubq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_DF2FE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vsubw_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vsubl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vsubl_high_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_D8213(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vsubw_high_s32(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, veorq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_lower_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmovl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_upper_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmovl_high_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_saturate_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqabsq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_63324(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vabaq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vaddq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_upper_3224B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vaddhn_high_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_upper_3224B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vraddhn_high_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqaddq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vandq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vbicq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_63324(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vbslq_s8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vceqq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcgtq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcgeq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcltq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcleq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vtstq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vdupq_laneq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vdupq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vdupq_lane_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.SByte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_EBE26(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vdupq_n_s8(
                INTRINSIC_CAST(TArg1, int8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_upper_4CDF4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqmovn_high_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_upper_4CDF4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vmovn_high_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vextq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vextq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vhaddq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrhaddq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vhsubq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte,System.SByte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_75799(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsetq_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_75799(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vsetq_lane_s8(
                INTRINSIC_CAST(TArg3, int8_t, arg3),
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingSignCount(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_sign_count_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vclsq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vclzq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte,System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_35BC4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vld1q_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_35BC4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vld1q_lane_s8(
                INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vld1q_dup_s8(
                INTRINSIC_CAST(TArg1, int8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vld1q_s8(
                INTRINSIC_CAST(TArg1, int8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vmaxq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vminq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vmulq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_63324(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vmlaq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_63324(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vmlsq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, int8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vnegq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::NegateSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_saturate_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqnegq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vmvnq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vorrq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vornq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiply(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly8x16_t, TRet, vmulq_p8(
                INTRINSIC_CAST(TArg1, poly8x16_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::PopCount(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_pop_count_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vcntq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vshlq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrshlq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqrshlq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqshlq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsliq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vsliq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vshlq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshlq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vqshlq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqrshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsriq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vsriq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vshrq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vsraq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vqshrn_high_n_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vrshrq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrsraq_n_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vrsraq_n_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vqrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vqrshrn_high_n_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vshrq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsraq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqshrn_high_n_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vshrn_high_n_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrshrq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrshrq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vrsraq_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_980F0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrsraq_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x16_t, TRet, vqrshrn_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqrshrn_high_n_u16(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x16_t, TRet, vrshrn_high_n_s16(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_D10A4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vrshrn_high_n_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vsubq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_upper_3224B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vsubhn_high_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_upper_3224B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrsubhn_high_s16(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqsubq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, veorq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vabsq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_greater_than_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcagtq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_greater_than_or_equal_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcageq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_less_than_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcaltq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_less_than_or_equal_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcaleq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vabdq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vaddq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vandq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vbicq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_76B70(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vbslq_f32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Ceiling(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_ceiling_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndpq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vceqq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcgtq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcgeq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcltq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcleq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vtstq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToSingle(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_single_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vcvtq_f32_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToSingle(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_single_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vcvtq_f32_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_7D4DE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vdupq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vdupq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vdupq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vdupq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_7D4DE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vdupq_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_DF41E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vdupq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vdupq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_DF41E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vdupq_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.Single)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_5A8A1(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vdupq_n_f32(
                INTRINSIC_CAST(TArg1, float32_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_AEBBD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vextq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vextq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vextq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vextq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_AEBBD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vextq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Floor(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_floor_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndmq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_add_76B70(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmaq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_subtract_76B70(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmsq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte,System.Single)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_6A4E4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vsetq_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vsetq_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vsetq_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vsetq_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_6A4E4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vsetq_lane_f32(
                INTRINSIC_CAST(TArg3, float32_t, arg3),
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte,System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_71F8D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vld1q_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vld1q_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vld1q_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vld1q_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_71F8D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vld1q_lane_f32(
                INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vld1q_dup_f32(
                INTRINSIC_CAST(TArg1, float32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vld1q_f32(
                INTRINSIC_CAST(TArg1, float32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vmaxq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MaxNumber(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_number_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vmaxnmq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vminq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MinNumber(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_number_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vminnmq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vmulq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_0E608(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vmulq_n_f32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vmulq_n_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_AEBBD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_AEBBD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vmulq_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_77E87(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_77E87(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vmulq_lane_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vnegq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmvnq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vorrq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vornq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalEstimate(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_estimate_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrecpeq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_square_root_estimate_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrsqrteq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalSquareRootStep(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_square_root_step_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrsqrtsq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalStep(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_step_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrecpsq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundAwayFromZero(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_away_from_zero_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndaq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNearest(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_nearest_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndnq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_negative_infinity_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndmq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_positive_infinity_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndpq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToZero(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_zero_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vrndq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vsubq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, veorq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabsq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabdq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vabdq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_9C376(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vabaq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vabdl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabdl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_and_add_89831(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vabal_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vabdl_high_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vabdl_high_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_and_add_A85E6(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vabal_high_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vaddq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_upper_DEB5A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vaddhn_high_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vpaddlq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_7DCED(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vpadalq_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_upper_DEB5A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vraddhn_high_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqaddq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_E4EDD(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vaddw_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vaddl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vaddl_high_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_7DCED(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vaddw_high_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vandq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vbicq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_9C376(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vbslq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vceqq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcgtq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcgeq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcltq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcleq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vtstq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vdupq_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vdupq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vdupq_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.UInt16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_1D763(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vdupq_n_u16(
                INTRINSIC_CAST(TArg1, uint16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_unsigned_upper_A13F2(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqmovun_high_s32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_upper_B58D4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqmovn_high_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_upper_B58D4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmovn_high_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vextq_s16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vextq_s16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vhaddq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrhaddq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vhsubq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte,System.UInt16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_DE49F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsetq_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_DE49F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsetq_lane_u16(
                INTRINSIC_CAST(TArg3, uint16_t, arg3),
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vclzq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte,System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_EBA46(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vld1q_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_EBA46(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vld1q_lane_u16(
                INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vld1q_dup_u16(
                INTRINSIC_CAST(TArg1, uint16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vld1q_u16(
                INTRINSIC_CAST(TArg1, uint16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmaxq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vminq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmulq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_9C376(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlaq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_10B91(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlaq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                vget_lane_u16(INTRINSIC_CAST(TArg3, uint16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_00DA8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_00DA8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlaq_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_010DD(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlaq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_010DD(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlaq_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_B4B67(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmulq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                vget_lane_u16(INTRINSIC_CAST(TArg2, uint16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmulq_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_CE9B8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmulq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_CE9B8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmulq_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_9C376(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlsq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_10B91(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlsq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                vget_lane_u16(INTRINSIC_CAST(TArg3, uint16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_00DA8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_00DA8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlsq_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_010DD(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vmlsq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_010DD(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlsq_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmull_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_add_89831(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlal_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_subtract_89831(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlsl_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmull_high_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_add_A85E6(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlal_high_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_subtract_A85E6(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmlsl_high_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmvnq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vorrq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vornq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_widening_lower_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly16x8_t, TRet, vmull_p8(
                INTRINSIC_CAST(TArg1, poly8x8_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_widening_upper_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly16x8_t, TRet, vmull_high_p8(
                INTRINSIC_CAST(TArg1, poly8x16_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrev16q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsliq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsliq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshlq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshlq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshlq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshluq_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshluq_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshll_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshll_high_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshll_high_n_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_B36A7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_B36A7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_B36A7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqrshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_B36A7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsriq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsriq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_upper_D934F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_upper_D934F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshrun_high_n_s32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_upper_D934F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrun_high_n_s32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_upper_D934F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqrshrun_high_n_s32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshrq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsraq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqshrn_high_n_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vshrn_high_n_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrshrq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrsraq_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrsraq_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vqrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqrshrn_high_n_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x8_t, TRet, vrshrn_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_64AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrshrn_high_n_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsubq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_upper_DEB5A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsubhn_high_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_upper_DEB5A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrsubhn_high_u32(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vqsubq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_E4EDD(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsubw_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsubl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsubl_high_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_7DCED(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsubw_high_u8(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, veorq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_lower_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmovl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_upper_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vmovl_high_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabsq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabdq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vabdq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_AE6FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vabaq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabdl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vabdl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_and_add_A1AFB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vabal_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vabdl_high_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vabdl_high_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_and_add_0D1D4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vabal_high_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vaddq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_upper_B1B15(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vaddhn_high_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vpaddlq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_4A71D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vpadalq_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_upper_B1B15(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vraddhn_high_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqaddq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_640FE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vaddw_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vaddl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vaddl_high_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_4A71D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vaddw_high_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vandq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vbicq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_AE6FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vbslq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vceqq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcgtq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcgeq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcltq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcleq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vtstq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_away_from_zero_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcvtaq_u32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToEven(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_even_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcvtnq_u32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_negative_infinity_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcvtmq_u32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_positive_infinity_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcvtpq_u32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToZero(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_zero_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcvtq_u32_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vdupq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vdupq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vdupq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vdupq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vdupq_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector128(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vdupq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vdupq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector128_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vdupq_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector128(System.UInt32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector128_F3FC6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vdupq_n_u32(
                INTRINSIC_CAST(TArg1, uint32_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_unsigned_upper_0A408(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqmovun_high_s64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_upper_46BE8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqmovn_high_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_upper_46BE8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmovn_high_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vextq_s32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vextq_s32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vhaddq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrhaddq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vhsubq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte,System.UInt32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_E9FFF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsetq_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsetq_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsetq_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsetq_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_E9FFF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsetq_lane_u32(
                INTRINSIC_CAST(TArg3, uint32_t, arg3),
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vclzq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte,System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_4FFD8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vld1q_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vld1q_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vld1q_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vld1q_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_4FFD8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vld1q_lane_u32(
                INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector128(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector128_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vld1q_dup_u32(
                INTRINSIC_CAST(TArg1, uint32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vld1q_u32(
                INTRINSIC_CAST(TArg1, uint32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmaxq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vminq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmulq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_AE6FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlaq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_05FF2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlaq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                vget_lane_u32(INTRINSIC_CAST(TArg3, uint32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_2AA74(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlaq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlaq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlaq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlaq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_2AA74(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlaq_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_5CC78(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlaq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlaq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_5CC78(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlaq_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_89A42(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmulq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                vget_lane_u32(INTRINSIC_CAST(TArg2, uint32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmulq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmulq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmulq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmulq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmulq_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_BF405(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmulq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmulq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_BF405(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmulq_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_C0B41(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_C0B41(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmull_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmull_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_54A76(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_54A76(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlal_laneq_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_6CB43(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_6CB43(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlal_lane_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_54A76(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_54A76(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsl_laneq_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_6CB43(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_6CB43(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsl_lane_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_F657F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmull_high_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_CE9B8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmull_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_CE9B8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmull_high_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_672BE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_672BE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlal_high_laneq_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_DEC36(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlal_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_DEC36(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlal_high_lane_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_672BE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_672BE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsl_high_laneq_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_DEC36(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsl_high_lane_u16(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_DEC36(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsl_high_lane_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_AE6FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_05FF2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                vget_lane_u32(INTRINSIC_CAST(TArg3, uint32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_2AA74(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsq_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_2AA74(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsq_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_5CC78(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vmlsq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_5CC78(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsq_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmull_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_add_A1AFB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlal_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_subtract_A1AFB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsl_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmull_high_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_add_0D1D4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlal_high_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_subtract_0D1D4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmlsl_high_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmvnq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vorrq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vornq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalEstimate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_estimate_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrecpeq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_square_root_estimate_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrsqrteq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrev32q_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrev32q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsliq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsliq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshlq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshlq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshlq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshluq_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshluq_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshll_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshll_high_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshll_high_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_4750A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_4750A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_4750A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqrshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_4750A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsriq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsriq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_upper_F052A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_upper_F052A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshrun_high_n_s64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_upper_F052A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrun_high_n_s64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_upper_F052A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqrshrun_high_n_s64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshrq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsraq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqshrn_high_n_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vshrn_high_n_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrshrq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrsraq_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrsraq_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vqrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqrshrn_high_n_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x4_t, TRet, vrshrn_high_n_u64(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_upper_7A34C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrshrn_high_n_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsubq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_upper_B1B15(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsubhn_high_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingUpper(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_upper_B1B15(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrsubhn_high_u64(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vqsubq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_640FE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsubw_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsubl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsubl_high_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_4A71D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsubw_high_u16(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, veorq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_lower_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmovl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_upper_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmovl_high_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vabdl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vabdl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_lower_and_add_7B4E2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vabal_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vabdl_high_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vabdl_high_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_widening_upper_and_add_A68B7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vabal_high_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vaddq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vpaddlq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_508E0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vpadalq_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqaddq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_C9E4C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vaddw_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_lower_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vaddl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vaddl_high_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_widening_upper_508E0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vaddw_high_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vandq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vbicq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_3C446(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vbslq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint64x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector128(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vextq_s64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vextq_s64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector128_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vextq_s64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte,System.UInt64)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_A5916(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsetq_lane_u64(
                        INTRINSIC_CAST(TArg3, uint64_t, arg3),
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsetq_lane_u64(
                        INTRINSIC_CAST(TArg3, uint64_t, arg3),
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_A5916(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsetq_lane_u64(
                INTRINSIC_CAST(TArg3, uint64_t, arg3),
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::InsertScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_scalar_F969C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: There is a constant of 0 for the arg4 for all calls
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vcopyq_lane_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0,
                        INTRINSIC_CAST(TArg3, uint64x1_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vcopyq_lane_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1,
                        INTRINSIC_CAST(TArg3, uint64x1_t, arg3),
                        0
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_scalar_F969C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: There is a constant of 0 for the arg4 for all calls
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcopyq_lane_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, uint64x1_t, arg3),
                0
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte,System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_A8649(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vld1q_lane_u64(
                        INTRINSIC_CAST(TArg3, uint64_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vld1q_lane_u64(
                        INTRINSIC_CAST(TArg3, uint64_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_A8649(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vld1q_lane_u64(
                INTRINSIC_CAST(TArg3, uint64_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector128(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector128_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vld1q_u64(
                INTRINSIC_CAST(TArg1, uint64_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_2BAE0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_2BAE0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmull_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmull_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_EE3D3(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_EE3D3(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlal_laneq_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_26128(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_add_26128(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlal_lane_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_EE3D3(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_EE3D3(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlsl_laneq_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_26128(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_lower_and_subtract_26128(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlsl_lane_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_E09FA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmull_high_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_BF405(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_high_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmull_high_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_BF405(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmull_high_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_4F79D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_4F79D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlal_high_laneq_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_90557(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_high_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlal_high_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_add_90557(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlal_high_lane_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_4F79D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_high_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_4F79D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlsl_high_laneq_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalarWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_90557(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_high_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vmlsl_high_lane_u32(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_widening_upper_and_subtract_90557(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlsl_high_lane_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmull_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_add_7B4E2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlal_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningLowerAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_lower_and_subtract_7B4E2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlsl_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmull_high_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_add_A68B7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlal_high_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyWideningUpperAndSubtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_widening_upper_and_subtract_A68B7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmlsl_high_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vmvnq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vorrq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vornq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vrev64q_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement32(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element32_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vrev64q_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrev64q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsliq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsliq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshlq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshlq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqshlq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vqshluq_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqshluq_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_lower_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshll_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshll_high_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_widening_upper_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshll_high_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_97035(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_97035(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vrshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_97035(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqrshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_97035(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqshlq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsriq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsriq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vshrq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsraq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrshrq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vrshrq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vrsraq_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_B8B89(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vrsraq_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsubq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vqsubq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_C9E4C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsubw_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_lower_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsubl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsubl_high_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_widening_upper_508E0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsubw_high_u32(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, veorq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningLower(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_lower_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmovl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ZeroExtendWideningUpper(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_zero_extend_widening_upper_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vmovl_high_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vabs_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vabd_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vabd_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_1D02A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vaba_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vadd_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_lower_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vaddhn_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vpadd_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_lower_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vraddhn_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqadd_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vand_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vbic_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_1D02A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vbsl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vceq_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcgt_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcge_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vclt_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcle_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vtst_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_laneq_u8(
                        INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_B90AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vdup_laneq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vdup_lane_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vdup_lane_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_E80A2(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vdup_n_u8(
                INTRINSIC_CAST(TArg1, uint8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_lower_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmovn_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_lower_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqmovn_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_unsigned_lower_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqmovun_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vext_s8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vhadd_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrhadd_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vhsub_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_BD2CF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vset_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_BD2CF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vset_lane_u8(
                INTRINSIC_CAST(TArg3, uint8_t, arg3),
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vclz_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte,System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_A803A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vld1_lane_u8(
                        INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_A803A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vld1_lane_u8(
                INTRINSIC_CAST(TArg3, uint8_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vld1_dup_u8(
                INTRINSIC_CAST(TArg1, uint8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vld1_u8(
                INTRINSIC_CAST(TArg1, uint8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmax_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vpmax_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmin_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vpmin_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmul_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_1D02A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmla_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_1D02A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmls_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vmvn_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vorr_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vorn_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiply(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly8x8_t, TRet, vmul_p8(
                INTRINSIC_CAST(TArg1, poly8x8_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::PopCount(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_pop_count_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcnt_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsli_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsli_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vshl_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshl_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshl_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshlu_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshlu_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqrshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsri_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsri_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshrun_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrun_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqrshrun_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vshr_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsra_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vshrn_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshrn_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrshr_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_0B3F7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrsra_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrshrn_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqrshrn_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsub_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_lower_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsubhn_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_lower_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrsubhn_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqsub_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_C4DD6(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbl1_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_74C2F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbl2_u8(
                INTRINSIC_CAST(TArg1, uint8x16x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.ValueTuple`3<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_4FAD1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbl3_u8(
                INTRINSIC_CAST(TArg1, uint8x16x3_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.ValueTuple`4<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_3BD0A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbl4_u8(
                INTRINSIC_CAST(TArg1, uint8x16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_4D534(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbx1_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_794EC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbx2_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.ValueTuple`3<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_1BFAA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbx3_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16x3_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.ValueTuple`4<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_4E3C3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqtbx4_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, veor_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::AbsScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vabs_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::AddScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vadd_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vand_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vbic_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_94FA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vbsl_f64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2),
                INTRINSIC_CAST(TArg3, float64x1_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::CeilingScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_ceiling_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrndp_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::DivideScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_divide_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vdiv_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::FloorScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_floor_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrndm_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_add_negated_scalar_94FA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: -((arg2 * arg3) + arg1) using scalars
        float64x1_t ret = vfma_f64(
            INTRINSIC_CAST(TArg1, float64x1_t, arg1),
            INTRINSIC_CAST(TArg2, float64x1_t, arg2),
            INTRINSIC_CAST(TArg3, float64x1_t, arg3)
        );
        ret = vneg_f64(ret);
        return INTRINSIC_CAST(float64x1_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplyAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_add_scalar_94FA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vfma_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2),
                INTRINSIC_CAST(TArg3, float64x1_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_subtract_negated_scalar_94FA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: ((arg2 * arg3) - arg1) using scalars
        float64x1_t ret = vfms_f64(
            INTRINSIC_CAST(TArg1, float64x1_t, arg1),
            INTRINSIC_CAST(TArg2, float64x1_t, arg2),
            INTRINSIC_CAST(TArg3, float64x1_t, arg3)
        );
        ret = vneg_f64(ret);
        return INTRINSIC_CAST(float64x1_t, TRet, ret);

#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplySubtractScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_subtract_scalar_94FA3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vfms_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2),
                INTRINSIC_CAST(TArg3, float64x1_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vld1_f64(
                INTRINSIC_CAST(TArg1, float64_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::MaxNumberScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_number_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vmaxnm_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::MinNumberScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_number_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vminnm_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vmul_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::NegateScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vneg_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmvn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vorr_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vorn_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_away_from_zero_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrnda_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNearestScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_nearest_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrndn_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_negative_infinity_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrndm_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_positive_infinity_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrndp_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_zero_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrnd_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::SqrtScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sqrt_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vsqrt_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vsub_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, veor_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_saturate_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqabs_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_DCEFC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vaba_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vadd_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_lower_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vaddhn_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vpadd_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vpaddl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_28973(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vpadal_s8(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_lower_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vraddhn_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqadd_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vand_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vbic_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_DCEFC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vbsl_s16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vceq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcgt_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcge_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vclt_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcle_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vtst_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vdup_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vdup_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vdup_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.Int16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_387BE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vdup_n_s16(
                INTRINSIC_CAST(TArg1, int16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_lower_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmovn_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_lower_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqmovn_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vext_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vhadd_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vrhadd_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vhsub_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte,System.Int16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_CF410(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vset_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vset_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vset_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vset_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_CF410(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vset_lane_s16(
                INTRINSIC_CAST(TArg3, int16_t, arg3),
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingSignCount(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_sign_count_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vcls_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vclz_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte,System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_9EF2C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vld1_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vld1_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vld1_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vld1_lane_s16(
                        INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_9EF2C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vld1_lane_s16(
                INTRINSIC_CAST(TArg3, int16_t const *, arg3),
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vld1_dup_s16(
                INTRINSIC_CAST(TArg1, int16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vld1_s16(
                INTRINSIC_CAST(TArg1, int16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmax_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vpmax_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmin_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vpmin_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmul_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_DCEFC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmla_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_DCEFC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmla_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                vget_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_ED3D5(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_ED3D5(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vmla_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_0BE95(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmla_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_0BE95(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vmla_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmul_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vmul_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmul_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vmul_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_scalar_saturate_high_34549(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqdmulh_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqdmulh_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqdmulh_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_saturate_high_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqdmulh_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_scalar_saturate_high_34549(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqrdmulh_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqrdmulh_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrdmulh_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqrdmulh_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_saturate_high_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqrdmulh_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_DCEFC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmls_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_DCEFC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmls_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                vget_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_ED3D5(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_laneq_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_ED3D5(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vmls_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_0BE95(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vmls_lane_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_0BE95(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vmls_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vneg_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::NegateSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_saturate_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqneg_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vmvn_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vorr_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vorn_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrev16_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vshl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vrshl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqrshl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqshl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsli_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vsli_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vshl_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshl_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqshl_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqrshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsri_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vsri_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vshr_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vsra_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqshrn_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshr_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vrshr_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrsra_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vrsra_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vqrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vqrshrn_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vshr_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsra_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vshrn_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshrn_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrshr_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrsra_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int16x4_t, TRet, vrshrn_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vrshrn_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqrshrn_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vsub_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_lower_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vsubhn_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_lower_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vrsubhn_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vqsub_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int16> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, veor_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_saturate_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqabs_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_455B4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vaba_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vadd_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_lower_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vaddhn_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vpadd_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vpaddl_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_D9D74(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vpadal_s16(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_lower_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vraddhn_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqadd_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vand_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vbic_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_455B4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vbsl_s32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vceq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcgt_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcge_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vclt_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcle_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vtst_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_away_from_zero_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vcvta_s32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_away_from_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        int32x2_t ret = {};
        ret = vset_lane_s32(vcvtas_s32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToEven(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_even_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vcvtn_s32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToEvenScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_even_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        int32x2_t ret = {};
        ret = vset_lane_s32(vcvtns_s32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_negative_infinity_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vcvtm_s32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_negative_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        int32x2_t ret = {};
        ret = vset_lane_s32(vcvtms_s32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_positive_infinity_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vcvtp_s32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_positive_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        int32x2_t ret = {};
        ret = vset_lane_s32(vcvtps_s32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToZero(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_zero_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vcvt_s32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToInt32RoundToZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_int32_round_to_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        int32x2_t ret = {};
        ret = vset_lane_s32(vcvts_s32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vdup_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vdup_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vdup_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vdup_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vdup_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vdup_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vdup_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vdup_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.Int32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_F64C6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vdup_n_s32(
                INTRINSIC_CAST(TArg1, int32_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_lower_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmovn_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_lower_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqmovn_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vext_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vext_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vext_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vhadd_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vrhadd_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vhsub_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte,System.Int32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_0A14E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vset_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t, arg3),
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vset_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t, arg3),
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_0A14E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vset_lane_s32(
                INTRINSIC_CAST(TArg3, int32_t, arg3),
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingSignCount(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_sign_count_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vcls_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vclz_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte,System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_2DBE3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vld1_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vld1_lane_s32(
                        INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_2DBE3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vld1_lane_s32(
                INTRINSIC_CAST(TArg3, int32_t const *, arg3),
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vld1_dup_s32(
                INTRINSIC_CAST(TArg1, int32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vld1_s32(
                INTRINSIC_CAST(TArg1, int32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmax_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vpmax_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmin_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vpmin_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmul_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_455B4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmla_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_455B4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmla_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_D7D1B(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmla_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmla_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmla_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmla_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_D7D1B(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vmla_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_ABB38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmla_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmla_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_ABB38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vmla_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmul_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmul_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmul_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmul_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmul_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vmul_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmul_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmul_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vmul_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_scalar_saturate_high_D544C(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqdmulh_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqdmulh_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqdmulh_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqdmulh_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_by_selected_scalar_saturate_high_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqdmulh_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_doubling_saturate_high_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqdmulh_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingByScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_scalar_saturate_high_D544C(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Extract the first lane of arg2
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqrdmulh_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrdmulh_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqrdmulh_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingBySelectedScalarSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrdmulh_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrdmulh_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_by_selected_scalar_saturate_high_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqrdmulh_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyRoundedDoublingSaturateHigh(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_rounded_doubling_saturate_high_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqrdmulh_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_455B4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmls_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_455B4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Extract the first lane of arg3
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmls_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_D7D1B(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmls_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmls_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmls_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmls_laneq_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_D7D1B(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vmls_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_ABB38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmls_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vmls_lane_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_ABB38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vmls_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vneg_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::NegateSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_saturate_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqneg_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vmvn_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vorr_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vorn_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vrev32_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrev32_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vshl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vrshl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqrshl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqshl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsli_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vsli_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vshl_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshl_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqshl_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqrshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsri_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vsri_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vshr_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vsra_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqshrn_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshr_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vrshr_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrsra_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vrsra_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vqrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vqrshrn_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vshr_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsra_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vshrn_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshrn_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrshr_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrsra_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int32x2_t, TRet, vrshrn_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vrshrn_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqrshrn_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vsub_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_lower_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vsubhn_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_lower_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vrsubhn_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                INTRINSIC_CAST(TArg2, int64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vqsub_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int32> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, veor_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_scalar_B06CF(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vpadal_s32(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_scalar_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vpaddl_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vqadd_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::AddScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vadd_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vand_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vbic_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_CF70E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vbsl_s64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                INTRINSIC_CAST(TArg3, int64x1_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vld1_s64(
                INTRINSIC_CAST(TArg1, int64_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmvn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vorr_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vorn_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vrev64_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement32(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element32_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vrev64_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrev64_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vqrshl_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vrshl_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vqshl_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vshl_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vslid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64_t, TRet, vslid_n_s64(
                INTRINSIC_CAST(TArg1, int64_t, arg1),
                INTRINSIC_CAST(TArg2, int64_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vqshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x1_t, TRet, vqshl_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshl_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x1_t, TRet, vshl_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqrshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vrshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64_t, TRet, vsrid_n_s64(
                        INTRINSIC_CAST(TArg1, int64_t, arg1),
                        INTRINSIC_CAST(TArg2, int64_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64_t, TRet, vsrid_n_s64(
                INTRINSIC_CAST(TArg1, int64_t, arg1),
                INTRINSIC_CAST(TArg2, int64_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_scalar(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_scalar(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x1_t, TRet, vsra_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_scalar(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrsra_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_scalar(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x1_t, TRet, vrsra_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vrshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x1_t, TRet, vrshr_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    int64x1_t, TRet, vshr_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x1_t, TRet, vshr_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vsra_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_scalar_5E8A5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vrsra_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vrshr_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vshr_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vqsub_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vsub_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Int64> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, veor_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_saturate_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqabs_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_8FAAD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vaba_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vadd_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_lower_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vaddhn_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vpadd_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_lower_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vraddhn_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqadd_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vand_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vbic_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_8FAAD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vbsl_s8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vceq_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcgt_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcge_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vclt_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcle_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vtst_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_laneq_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vdup_laneq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vdup_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vdup_lane_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.SByte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_EBE26(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vdup_n_s8(
                INTRINSIC_CAST(TArg1, int8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_lower_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmovn_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_lower_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqmovn_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vext_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vext_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vhadd_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrhadd_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vhsub_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte,System.SByte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_7EE76(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vset_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_7EE76(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vset_lane_s8(
                INTRINSIC_CAST(TArg3, int8_t, arg3),
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingSignCount(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_sign_count_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vcls_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vclz_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte,System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_21FDF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vld1_lane_s8(
                        INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_21FDF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vld1_lane_s8(
                INTRINSIC_CAST(TArg3, int8_t const *, arg3),
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vld1_dup_s8(
                INTRINSIC_CAST(TArg1, int8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vld1_s8(
                INTRINSIC_CAST(TArg1, int8_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmax_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vpmax_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmin_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vpmin_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmul_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_8FAAD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmla_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_8FAAD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmls_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                INTRINSIC_CAST(TArg3, int8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vneg_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::NegateSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_saturate_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqneg_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vmvn_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vorr_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vorn_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::PolynomialMultiply(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_polynomial_multiply_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            poly8x8_t, TRet, vmul_p8(
                INTRINSIC_CAST(TArg1, poly8x8_t, arg1),
                INTRINSIC_CAST(TArg2, poly8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::PopCount(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_pop_count_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vcnt_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmetic(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vshl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRounded(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrshl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_rounded_saturate_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqrshl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftArithmeticSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_arithmetic_saturate_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqshl_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsli_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vsli_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vshl_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshl_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vqshl_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqrshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsri_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vsri_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmetic(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vshr_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticAdd(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vsra_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vqshrn_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRounded(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshr_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vrshr_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrsra_n_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vrsra_n_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vqrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vqrshrn_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vshr_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsra_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vshrn_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqshrn_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrshr_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrshr_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vrsra_n_u8(
                        INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                        INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_F1C7F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrsra_n_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8x8_t, TRet, vrshrn_n_s16(
                        INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vrshrn_n_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint8x8_t, TRet, vqrshrn_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        8
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_B5D9D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vqrshrn_n_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vsub_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_lower_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vsubhn_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_lower_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrsubhn_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                INTRINSIC_CAST(TArg2, int16x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqsub_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_6ABCF(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbl1_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_8C920(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbl2_s8(
                INTRINSIC_CAST(TArg1, int8x16x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.ValueTuple`3<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_EF5D0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbl3_s8(
                INTRINSIC_CAST(TArg1, int8x16x3_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookup(System.ValueTuple`4<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_09583(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbl4_s8(
                INTRINSIC_CAST(TArg1, int8x16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_48B84(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbx1_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_E676D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbx2_s8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.ValueTuple`3<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_7EDD6(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbx3_s8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16x3_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.ValueTuple`4<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_vector_table_lookup_extension_96F10(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vqtbx4_s8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.SByte> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, veor_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                INTRINSIC_CAST(TArg2, int8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vabs_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        float32x2_t ret = {};
        ret = vset_lane_f32(abs(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_greater_than_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcagt_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_greater_than_or_equal_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcage_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_less_than_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcalt_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteCompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_compare_less_than_or_equal_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcale_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vabd_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vadd_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vpadd_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::AddScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        float32x2_t ret = vadd_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);

#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vand_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vbic_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vbsl_f32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Ceiling(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_ceiling_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrndp_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CeilingScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_ceiling_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vrndp_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1));
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vceq_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcgt_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcge_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vclt_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcle_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vtst_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToSingle(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_single_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vcvt_f32_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToSingle(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_single_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vcvt_f32_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToSingleScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_single_scalar_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        float32x2_t ret = {};
        ret = vset_lane_f32(vcvts_f32_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToSingleScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_single_scalar_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        float32x2_t ret = {};
        ret = vset_lane_f32(vcvts_f32_u32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DivideScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_divide_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Zero out the second land for scalar calls
        float32x2_t ret = vdiv_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(
            float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_7D4DE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vdup_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vdup_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vdup_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vdup_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_7D4DE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vdup_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_DF41E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vdup_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vdup_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_DF41E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vdup_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.Single)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_5A8A1(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vdup_n_f32(
                INTRINSIC_CAST(TArg1, float32_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vext_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vext_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vext_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Floor(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_floor_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrndm_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FloorScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_floor_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        float32x2_t ret = vrndm_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(
            float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_add_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vfma_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplyAddNegatedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_add_negated_scalar_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: -((arg2 * arg3) + arg1) using scalars
        float32x2_t ret = vfma_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            INTRINSIC_CAST(TArg3, float32x2_t, arg3));
        ret = vneg_f32(ret);
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplyAddScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_add_scalar_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Zero out the second lane for scalar operation
        float32x2_t ret = vfma_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            INTRINSIC_CAST(TArg3, float32x2_t, arg3));
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_subtract_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vfms_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplySubtractNegatedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_subtract_negated_scalar_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: ((arg2 * arg3) - arg1) using scalars
        float32x2_t ret = vfms_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            INTRINSIC_CAST(TArg3, float32x2_t, arg3)
        );
        ret = vneg_f32(ret);
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::FusedMultiplySubtractScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_fused_multiply_subtract_scalar_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: (-(arg2 * arg3) + arg1) using scalars
        float32x2_t ret = vfms_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            INTRINSIC_CAST(TArg3, float32x2_t, arg3)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte,System.Single)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_282D2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vset_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t, arg3),
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vset_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t, arg3),
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_282D2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vset_lane_f32(
                INTRINSIC_CAST(TArg3, float32_t, arg3),
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte,System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_06F9A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vld1_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vld1_lane_f32(
                        INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_06F9A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vld1_lane_f32(
                INTRINSIC_CAST(TArg3, float32_t const *, arg3),
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vld1_dup_f32(
                INTRINSIC_CAST(TArg1, float32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vld1_f32(
                INTRINSIC_CAST(TArg1, float32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vmax_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MaxNumber(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_number_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vmaxnm_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MaxNumberScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_number_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vmaxnm_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(
            float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vpmax_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vmin_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MinNumber(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_number_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vminnm_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MinNumberScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_number_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vminnm_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vpmin_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vmul_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Need to extract the first element to pass to vmul_n_u16
        return INTRINSIC_CAST(
            float32x2_t, TRet, vmul_n_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmul_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmul_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmul_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmul_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vmul_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmul_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmul_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vmul_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vmul_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_scalar_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Select the first lane of arg 1 and zero out lane 2 of the return
        switch (arg3)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmuls_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmuls_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 2:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmuls_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 3:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmuls_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_scalar_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Select the first lane of arg 1 and zero out lane 2 of the return
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vmuls_laneq_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, float32x4_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(
            float32x2_t, TRet, ret
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_scalar_by_selected_scalar_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Select the first lane of arg 1 and zero out lane 2 of the return
        switch (arg3)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmuls_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmuls_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_scalar_by_selected_scalar_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vmuls_lane_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(
            float32x2_t, TRet, ret
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Negate(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vneg_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::NegateScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_negate_scalar_0373F(TArg1 arg1)
    {
        // HAND EDITED: Perform the opertation on both lanes then zero the second one
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        float32x2_t ret = vneg_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1));
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmvn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vorr_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vorn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalEstimate(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_estimate_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrecpe_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_square_root_estimate_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrsqrte_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalSquareRootStep(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_square_root_step_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrsqrts_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalStep(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_step_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrecps_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundAwayFromZero(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_away_from_zero_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrnda_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_away_from_zero_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vrnda_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1));
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNearest(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_nearest_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrndn_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNearestScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_nearest_scalar_0373F(TArg1 arg1)
    {
        // HAND EDITED: Get the 0 lane to call vrndns_f32 then zero out the other lane
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vrndns_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_negative_infinity_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrndm_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_negative_infinity_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vrndm_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_positive_infinity_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrndp_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_positive_infinity_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vrndp_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToZero(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_zero_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vrnd_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::RoundToZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_round_to_zero_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vrnd_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::SqrtScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_sqrt_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vsqrt_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vsub_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        // HAND EDITED: Using vector calls and setting the second lane to zero
        float32x2_t ret = vsub_f32(
            INTRINSIC_CAST(TArg1, float32x2_t, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
        ret = vset_lane_f32(0, ret, 1);
        return INTRINSIC_CAST(float32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.Single> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, veor_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vabs_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vabd_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vabd_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_A65F2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vaba_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vadd_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_lower_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vaddhn_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vpadd_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vpaddl_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_D6B72(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vpadal_u8(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_lower_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vraddhn_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqadd_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vand_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vbic_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_A65F2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vbsl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vceq_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcgt_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcge_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vclt_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcle_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vtst_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vdup_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vdup_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vdup_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.UInt16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_1D763(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vdup_n_u16(
                INTRINSIC_CAST(TArg1, uint16_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_lower_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmovn_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_lower_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqmovn_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_unsigned_lower_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqmovun_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vext_s16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vext_s16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vhadd_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrhadd_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vhsub_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte,System.UInt16)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_730E5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vset_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vset_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vset_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vset_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_730E5(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vset_lane_u16(
                INTRINSIC_CAST(TArg3, uint16_t, arg3),
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vclz_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte,System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_67EB4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vld1_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vld1_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vld1_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vld1_lane_u16(
                        INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_67EB4(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vld1_lane_u16(
                INTRINSIC_CAST(TArg3, uint16_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vld1_dup_u16(
                INTRINSIC_CAST(TArg1, uint16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vld1_u16(
                INTRINSIC_CAST(TArg1, uint16_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmax_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vpmax_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmin_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vpmin_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmul_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_A65F2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmla_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_A65F2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmla_n_u16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmla_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                vduph_lane_u16(INTRINSIC_CAST(TArg3, uint16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_A4775(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_A4775(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmla_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_BD911(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmla_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_BD911(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmla_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_750B5(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vmul_n_u16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmul_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                vduph_lane_u16(INTRINSIC_CAST(TArg2, uint16x4_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_C0B41(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_C0B41(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmul_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmul_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmul_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_A65F2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmls_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_A65F2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmls_n_u16
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmls_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                vduph_lane_u16(INTRINSIC_CAST(TArg3, uint16x4_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_A4775(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_laneq_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_A4775(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmls_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_BD911(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vmls_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_BD911(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmls_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vmvn_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vorr_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vorn_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrev16_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsli_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsli_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vshl_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshl_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshl_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshlu_n_s16(
                        INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshlu_n_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqrshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, int16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsri_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsri_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshrun_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrun_n_s32(
                        INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_lower_CFA53(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqrshrun_n_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vshr_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsra_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vshrn_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqshrn_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshr_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrshr_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrsra_n_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_91F2B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrsra_n_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrshrn_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint16x4_t, TRet, vqrshrn_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        16
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqrshrn_n_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsub_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_lower_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsubhn_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_lower_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrsubhn_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vqsub_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, veor_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Abs(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_abs_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vabs_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vabd_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifference(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vabd_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AbsoluteDifferenceAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_absolute_difference_add_AAC11(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vaba_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Add(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vadd_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_high_narrowing_lower_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vaddhn_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwise(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vpadd_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWidening(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vpaddl_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_33CCD(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vpadal_u16(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_rounded_high_narrowing_lower_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vraddhn_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqadd_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vand_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vbic_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_AAC11(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vbsl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareEqual(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_equal_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vceq_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThan(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcgt_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareGreaterThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_greater_than_or_equal_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcge_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThan(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vclt_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareLessThanOrEqual(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_less_than_or_equal_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcle_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::CompareTest(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_compare_test_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vtst_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundAwayFromZero(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_away_from_zero_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcvta_u32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_away_from_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcvtas_u32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToEven(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_even_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcvtn_u32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToEvenScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_even_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcvtns_u32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_negative_infinity_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcvtm_u32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_negative_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcvtms_u32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_positive_infinity_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcvtp_u32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_positive_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcvtps_u32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToZero(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_zero_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcvt_u32_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ConvertToUInt32RoundToZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_convert_to_u_int32_round_to_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        // HAND EDITED: Using scalar calls and setting the second lane to zero
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcvts_u32_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(
            int32x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vdup_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vdup_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vdup_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vdup_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vdup_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateSelectedScalarToVector64(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vdup_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vdup_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_selected_scalar_to_vector64_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vdup_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::DuplicateToVector64(System.UInt32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_duplicate_to_vector64_F3FC6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vdup_n_u32(
                INTRINSIC_CAST(TArg1, uint32_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_lower_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmovn_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_lower_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqmovn_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_extract_narrowing_saturate_unsigned_lower_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqmovun_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ExtractVector64(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vext_s32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vext_s32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_vector64_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vext_s32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddHalving(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_halving_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vhadd_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedAddRoundedHalving(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_add_rounded_halving_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrhadd_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::FusedSubtractHalving(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_fused_subtract_halving_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vhsub_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Insert(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte,System.UInt32)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_insert_C7232(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vset_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t, arg3),
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vset_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t, arg3),
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_insert_C7232(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vset_lane_u32(
                INTRINSIC_CAST(TArg3, uint32_t, arg3),
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LeadingZeroCount(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_leading_zero_count_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vclz_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte,System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_8E483(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vld1_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vld1_lane_u32(
                        INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_insert_scalar_8E483(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vld1_lane_u32(
                INTRINSIC_CAST(TArg3, uint32_t const *, arg3),
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadAndReplicateToVector64(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_and_replicate_to_vector64_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vld1_dup_u32(
                INTRINSIC_CAST(TArg1, uint32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vld1_u32(
                INTRINSIC_CAST(TArg1, uint32_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Max(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmax_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MaxPairwise(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_max_pairwise_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vpmax_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Min(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmin_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MinPairwise(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_min_pairwise_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vpmin_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Multiply(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmul_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_AAC11(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmla_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddByScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_scalar_AAC11(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmla_n_u32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmla_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                vdups_lane_u32(INTRINSIC_CAST(TArg3, uint32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_FC3DE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmla_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmla_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmla_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmla_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_FC3DE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmla_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_70AE0(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmla_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmla_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_add_by_selected_scalar_70AE0(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmla_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyByScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_scalar_0920B(TArg1 arg1, TArg2 arg2)
    {
        // HAND EDITED: Need to extract the first element to pass to vmul_n_u32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmul_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                vdups_lane_u32(INTRINSIC_CAST(TArg2, uint32x2_t, arg2), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_2BAE0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmul_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmul_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmul_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmul_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_2BAE0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmul_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplyBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmul_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmul_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_by_selected_scalar_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmul_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtract(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_AAC11(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmls_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractByScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_scalar_AAC11(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
        // HAND EDITED: Need to extract the first element to pass to vmls_n_u32
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmls_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                vdups_lane_u32(INTRINSIC_CAST(TArg3, uint32x2_t, arg3), 0)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_FC3DE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmls_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmls_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmls_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmls_laneq_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_FC3DE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmls_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::MultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_70AE0(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmls_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vmls_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_adv_simd_multiply_subtract_by_selected_scalar_70AE0(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmls_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                TArg4Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmvn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vorr_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vorn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalEstimate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_estimate_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrecpe_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reciprocal_square_root_estimate_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrsqrte_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrev32_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrev32_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsert(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsli_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsli_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogical(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vshl_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshl_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshl_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsigned(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshlu_n_s32(
                        INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                        31
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshlu_n_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogical(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqrshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, int32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsert(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsri_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsri_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_narrowing_saturate_unsigned_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshrun_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedLower(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrun_n_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_lower_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqrshrun_n_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogical(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vshr_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsra_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vshrn_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_narrowing_saturate_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqshrn_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRounded(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshr_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrshr_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAdd(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrsra_n_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_77430(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrsra_n_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrshrn_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedNarrowingSaturateLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint32x2_t, TRet, vqrshrn_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        32
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_narrowing_saturate_lower_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqrshrn_n_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Subtract(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsub_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_high_narrowing_lower_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsubhn_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractRoundedHighNarrowingLower(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_rounded_high_narrowing_lower_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrsubhn_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturate(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vqsub_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt32> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, veor_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningAndAddScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_and_add_scalar_B0EC0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vpadal_u32(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddPairwiseWideningScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_add_pairwise_widening_scalar_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vpaddl_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_saturate_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqadd_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::AddScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_add_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vadd_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::And(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_and_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vand_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseClear(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_clear_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vbic_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::BitwiseSelect(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_bitwise_select_92E6B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vbsl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                INTRINSIC_CAST(TArg3, uint64x1_t, arg3)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::LoadVector64(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_load_vector64_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vld1_u64(
                INTRINSIC_CAST(TArg1, uint64_t const *, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Not(System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_not_F7831(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vmvn_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Or(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vorr_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::OrNot(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_or_not_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vorn_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement16(System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element16_F7831(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vrev64_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement32(System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element32_F7831(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vrev64_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ReverseElement8(System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_adv_simd_reverse_element8_F7831(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrev64_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vslid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_and_insert_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64_t, TRet, vslid_n_u64(
                INTRINSIC_CAST(TArg1, uint64_t, arg1),
                INTRINSIC_CAST(TArg2, uint64_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqshl_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vqshlu_n_s64(
                        INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_saturate_unsigned_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqshlu_n_s64(
                INTRINSIC_CAST(TArg1, int64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLeftLogicalScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshl_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        63
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_left_logical_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 63)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vshl_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_saturate_scalar_87E02(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqrshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_rounded_scalar_87E02(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vrshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_saturate_scalar_87E02(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftLogicalScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_logical_scalar_87E02(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vshl_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, int64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightAndInsertScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vsrid_n_u64(
                        INTRINSIC_CAST(TArg1, uint64_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_and_insert_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64_t, TRet, vsrid_n_u64(
                INTRINSIC_CAST(TArg1, uint64_t, arg1),
                INTRINSIC_CAST(TArg2, uint64_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalAddScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_add_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vsra_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedAddScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrsra_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_add_scalar_F1E38(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 1 || TArg3Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vrsra_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2),
                TArg3Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalRoundedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vrshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_rounded_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vrshr_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::ShiftRightLogicalScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        15
                    )
                );
            }
            case 16:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        16
                    )
                );
            }
            case 17:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        17
                    )
                );
            }
            case 18:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        18
                    )
                );
            }
            case 19:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        19
                    )
                );
            }
            case 20:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        20
                    )
                );
            }
            case 21:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        21
                    )
                );
            }
            case 22:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        22
                    )
                );
            }
            case 23:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        23
                    )
                );
            }
            case 24:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        24
                    )
                );
            }
            case 25:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        25
                    )
                );
            }
            case 26:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        26
                    )
                );
            }
            case 27:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        27
                    )
                );
            }
            case 28:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        28
                    )
                );
            }
            case 29:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        29
                    )
                );
            }
            case 30:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        30
                    )
                );
            }
            case 31:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        31
                    )
                );
            }
            case 32:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        32
                    )
                );
            }
            case 33:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        33
                    )
                );
            }
            case 34:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        34
                    )
                );
            }
            case 35:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        35
                    )
                );
            }
            case 36:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        36
                    )
                );
            }
            case 37:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        37
                    )
                );
            }
            case 38:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        38
                    )
                );
            }
            case 39:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        39
                    )
                );
            }
            case 40:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        40
                    )
                );
            }
            case 41:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        41
                    )
                );
            }
            case 42:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        42
                    )
                );
            }
            case 43:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        43
                    )
                );
            }
            case 44:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        44
                    )
                );
            }
            case 45:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        45
                    )
                );
            }
            case 46:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        46
                    )
                );
            }
            case 47:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        47
                    )
                );
            }
            case 48:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        48
                    )
                );
            }
            case 49:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        49
                    )
                );
            }
            case 50:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        50
                    )
                );
            }
            case 51:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        51
                    )
                );
            }
            case 52:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        52
                    )
                );
            }
            case 53:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        53
                    )
                );
            }
            case 54:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        54
                    )
                );
            }
            case 55:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        55
                    )
                );
            }
            case 56:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        56
                    )
                );
            }
            case 57:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        57
                    )
                );
            }
            case 58:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        58
                    )
                );
            }
            case 59:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        59
                    )
                );
            }
            case 60:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        60
                    )
                );
            }
            case 61:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        61
                    )
                );
            }
            case 62:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        62
                    )
                );
            }
            case 63:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        63
                    )
                );
            }
            case 64:
            {
                return INTRINSIC_CAST(
                    uint64x1_t, TRet, vshr_n_u64(
                        INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                        64
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_shift_right_logical_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 64)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x1_t, TRet, vshr_n_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_saturate_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vqsub_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::SubtractScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_subtract_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vsub_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector64`1<System.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd::Xor(System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_xor_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, veor_u64(
                INTRINSIC_CAST(TArg1, uint64x1_t, arg1),
                INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.SByte System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        7
                    )
                );
            }
            case 8:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        8
                    )
                );
            }
            case 9:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        9
                    )
                );
            }
            case 10:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        10
                    )
                );
            }
            case 11:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        11
                    )
                );
            }
            case 12:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        12
                    )
                );
            }
            case 13:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        13
                    )
                );
            }
            case 14:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        14
                    )
                );
            }
            case 15:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vgetq_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                        15
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_CEC28(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8_t, TRet, vgetq_lane_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.SByte System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    int8_t, TRet, vget_lane_s8(
                        INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8_t, TRet, vget_lane_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Single System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_7D4DE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32_t, TRet, vgetq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32_t, TRet, vgetq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32_t, TRet, vgetq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32_t, TRet, vgetq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_7D4DE(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32_t, TRet, vgetq_lane_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Single System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_DF41E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32_t, TRet, vget_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32_t, TRet, vget_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_DF41E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32_t, TRet, vget_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.UInt16 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        3
                    )
                );
            }
            case 4:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        4
                    )
                );
            }
            case 5:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        5
                    )
                );
            }
            case 6:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        6
                    )
                );
            }
            case 7:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vgetq_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                        7
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_159F8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16_t, TRet, vgetq_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.UInt16 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vget_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vget_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vget_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint16_t, TRet, vget_lane_u16(
                        INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16_t, TRet, vget_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.UInt32 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32_t, TRet, vgetq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32_t, TRet, vgetq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    uint32_t, TRet, vgetq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    uint32_t, TRet, vgetq_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                        3
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_2AC76(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32_t, TRet, vgetq_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.UInt32 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint32_t, TRet, vget_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint32_t, TRet, vget_lane_u32(
                        INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32_t, TRet, vget_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.UInt64 System.Runtime.Intrinsics.Arm.AdvSimd::Extract(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1]
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_extract_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vgetq_lane_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64_t, TRet, vgetq_lane_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        1
                    )
                );
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, int TArg2Value>
    inline TRet il2cpp_intrinsic_adv_simd_extract_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64_t, TRet, vgetq_lane_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Byte*,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_598B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_u8(
            INTRINSIC_CAST(TArg1, uint8_t *, arg1),
            INTRINSIC_CAST(TArg2, uint8x16_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Byte*,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_9BF50(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_u8(
            INTRINSIC_CAST(TArg1, uint8_t *, arg1),
            INTRINSIC_CAST(TArg2, uint8x8_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Double*,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_93E03(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        vst1q_f64(
            INTRINSIC_CAST(TArg1, float64_t *, arg1),
            INTRINSIC_CAST(TArg2, float64x2_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Double*,System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_67902(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        vst1_f64(
            INTRINSIC_CAST(TArg1, float64_t *, arg1),
            INTRINSIC_CAST(TArg2, float64x1_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Int16*,System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_34D7E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_s16(
            INTRINSIC_CAST(TArg1, int16_t *, arg1),
            INTRINSIC_CAST(TArg2, int16x8_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Int16*,System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_C331C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_s16(
            INTRINSIC_CAST(TArg1, int16_t *, arg1),
            INTRINSIC_CAST(TArg2, int16x4_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Int32*,System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_66122(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_s32(
            INTRINSIC_CAST(TArg1, int32_t *, arg1),
            INTRINSIC_CAST(TArg2, int32x4_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Int32*,System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_493C5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_s32(
            INTRINSIC_CAST(TArg1, int32_t *, arg1),
            INTRINSIC_CAST(TArg2, int32x2_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Int64*,System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_3B2E6(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_s64(
            INTRINSIC_CAST(TArg1, int64_t *, arg1),
            INTRINSIC_CAST(TArg2, int64x2_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Int64*,System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_517C0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_s64(
            INTRINSIC_CAST(TArg1, int64_t *, arg1),
            INTRINSIC_CAST(TArg2, int64x1_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.SByte*,System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_81840(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_s8(
            INTRINSIC_CAST(TArg1, int8_t *, arg1),
            INTRINSIC_CAST(TArg2, int8x16_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.SByte*,System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_9C938(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_s8(
            INTRINSIC_CAST(TArg1, int8_t *, arg1),
            INTRINSIC_CAST(TArg2, int8x8_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Single*,System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_8D352(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_f32(
            INTRINSIC_CAST(TArg1, float32_t *, arg1),
            INTRINSIC_CAST(TArg2, float32x4_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.Single*,System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_404AA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_f32(
            INTRINSIC_CAST(TArg1, float32_t *, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.UInt16*,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_A17DA(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_u16(
            INTRINSIC_CAST(TArg1, uint16_t *, arg1),
            INTRINSIC_CAST(TArg2, uint16x8_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.UInt16*,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_AB5DC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_u16(
            INTRINSIC_CAST(TArg1, uint16_t *, arg1),
            INTRINSIC_CAST(TArg2, uint16x4_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.UInt32*,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_F9618(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_u32(
            INTRINSIC_CAST(TArg1, uint32_t *, arg1),
            INTRINSIC_CAST(TArg2, uint32x4_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.UInt32*,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_051E8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_u32(
            INTRINSIC_CAST(TArg1, uint32_t *, arg1),
            INTRINSIC_CAST(TArg2, uint32x2_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.UInt64*,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_6BC0F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1q_u64(
            INTRINSIC_CAST(TArg1, uint64_t *, arg1),
            INTRINSIC_CAST(TArg2, uint64x2_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::Store(System.UInt64*,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_adv_simd_store_6351F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        vst1_u64(
            INTRINSIC_CAST(TArg1, uint64_t *, arg1),
            INTRINSIC_CAST(TArg2, uint64x1_t, arg2)
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Byte*,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_EAE68(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    3
                );
                return;
            }
            case 4:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    4
                );
                return;
            }
            case 5:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    5
                );
                return;
            }
            case 6:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    6
                );
                return;
            }
            case 7:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    7
                );
                return;
            }
            case 8:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    8
                );
                return;
            }
            case 9:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    9
                );
                return;
            }
            case 10:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    10
                );
                return;
            }
            case 11:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    11
                );
                return;
            }
            case 12:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    12
                );
                return;
            }
            case 13:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    13
                );
                return;
            }
            case 14:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    14
                );
                return;
            }
            case 15:
            {
                vst1q_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
                    15
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_EAE68(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_u8(
            INTRINSIC_CAST(TArg1, uint8_t *, arg1),
            INTRINSIC_CAST(TArg2, uint8x16_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Byte*,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_0AF1D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    3
                );
                return;
            }
            case 4:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    4
                );
                return;
            }
            case 5:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    5
                );
                return;
            }
            case 6:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    6
                );
                return;
            }
            case 7:
            {
                vst1_lane_u8(
                    INTRINSIC_CAST(TArg1, uint8_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
                    7
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_0AF1D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_u8(
            INTRINSIC_CAST(TArg1, uint8_t *, arg1),
            INTRINSIC_CAST(TArg2, uint8x8_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Double*,System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_5009B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_f64(
                    INTRINSIC_CAST(TArg1, float64_t *, arg1),
                    INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_f64(
                    INTRINSIC_CAST(TArg1, float64_t *, arg1),
                    INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                    1
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_5009B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_f64(
            INTRINSIC_CAST(TArg1, float64_t *, arg1),
            INTRINSIC_CAST(TArg2, float64x2_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Int16*,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_6CCB8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    3
                );
                return;
            }
            case 4:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    4
                );
                return;
            }
            case 5:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    5
                );
                return;
            }
            case 6:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    6
                );
                return;
            }
            case 7:
            {
                vst1q_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    7
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_6CCB8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_s16(
            INTRINSIC_CAST(TArg1, int16_t *, arg1),
            INTRINSIC_CAST(TArg2, int16x8_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Int16*,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_7C9EA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1_lane_s16(
                    INTRINSIC_CAST(TArg1, int16_t *, arg1),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    3
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_7C9EA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_s16(
            INTRINSIC_CAST(TArg1, int16_t *, arg1),
            INTRINSIC_CAST(TArg2, int16x4_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Int32*,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_F7B9D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_s32(
                    INTRINSIC_CAST(TArg1, int32_t *, arg1),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_s32(
                    INTRINSIC_CAST(TArg1, int32_t *, arg1),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_s32(
                    INTRINSIC_CAST(TArg1, int32_t *, arg1),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_s32(
                    INTRINSIC_CAST(TArg1, int32_t *, arg1),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    3
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_F7B9D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_s32(
            INTRINSIC_CAST(TArg1, int32_t *, arg1),
            INTRINSIC_CAST(TArg2, int32x4_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Int32*,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B782C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_s32(
                    INTRINSIC_CAST(TArg1, int32_t *, arg1),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_s32(
                    INTRINSIC_CAST(TArg1, int32_t *, arg1),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    1
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B782C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_s32(
            INTRINSIC_CAST(TArg1, int32_t *, arg1),
            INTRINSIC_CAST(TArg2, int32x2_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Int64*,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B8499(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_s64(
                    INTRINSIC_CAST(TArg1, int64_t *, arg1),
                    INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_s64(
                    INTRINSIC_CAST(TArg1, int64_t *, arg1),
                    INTRINSIC_CAST(TArg2, int64x2_t, arg2),
                    1
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B8499(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_s64(
            INTRINSIC_CAST(TArg1, int64_t *, arg1),
            INTRINSIC_CAST(TArg2, int64x2_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.SByte*,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_A18B2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    3
                );
                return;
            }
            case 4:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    4
                );
                return;
            }
            case 5:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    5
                );
                return;
            }
            case 6:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    6
                );
                return;
            }
            case 7:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    7
                );
                return;
            }
            case 8:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    8
                );
                return;
            }
            case 9:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    9
                );
                return;
            }
            case 10:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    10
                );
                return;
            }
            case 11:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    11
                );
                return;
            }
            case 12:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    12
                );
                return;
            }
            case 13:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    13
                );
                return;
            }
            case 14:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    14
                );
                return;
            }
            case 15:
            {
                vst1q_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x16_t, arg2),
                    15
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_A18B2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_s8(
            INTRINSIC_CAST(TArg1, int8_t *, arg1),
            INTRINSIC_CAST(TArg2, int8x16_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.SByte*,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_95E9E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    3
                );
                return;
            }
            case 4:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    4
                );
                return;
            }
            case 5:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    5
                );
                return;
            }
            case 6:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    6
                );
                return;
            }
            case 7:
            {
                vst1_lane_s8(
                    INTRINSIC_CAST(TArg1, int8_t *, arg1),
                    INTRINSIC_CAST(TArg2, int8x8_t, arg2),
                    7
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_95E9E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_s8(
            INTRINSIC_CAST(TArg1, int8_t *, arg1),
            INTRINSIC_CAST(TArg2, int8x8_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Single*,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B03C7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_f32(
                    INTRINSIC_CAST(TArg1, float32_t *, arg1),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_f32(
                    INTRINSIC_CAST(TArg1, float32_t *, arg1),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_f32(
                    INTRINSIC_CAST(TArg1, float32_t *, arg1),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_f32(
                    INTRINSIC_CAST(TArg1, float32_t *, arg1),
                    INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                    3
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B03C7(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_f32(
            INTRINSIC_CAST(TArg1, float32_t *, arg1),
            INTRINSIC_CAST(TArg2, float32x4_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.Single*,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_377B2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_f32(
                    INTRINSIC_CAST(TArg1, float32_t *, arg1),
                    INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_f32(
                    INTRINSIC_CAST(TArg1, float32_t *, arg1),
                    INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                    1
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_377B2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_f32(
            INTRINSIC_CAST(TArg1, float32_t *, arg1),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.UInt16*,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_83B9D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    3
                );
                return;
            }
            case 4:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    4
                );
                return;
            }
            case 5:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    5
                );
                return;
            }
            case 6:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    6
                );
                return;
            }
            case 7:
            {
                vst1q_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
                    7
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_83B9D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_u16(
            INTRINSIC_CAST(TArg1, uint16_t *, arg1),
            INTRINSIC_CAST(TArg2, uint16x8_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.UInt16*,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_97AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1_lane_u16(
                    INTRINSIC_CAST(TArg1, uint16_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
                    3
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_97AF8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_u16(
            INTRINSIC_CAST(TArg1, uint16_t *, arg1),
            INTRINSIC_CAST(TArg2, uint16x4_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.UInt32*,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_62947(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_u32(
                    INTRINSIC_CAST(TArg1, uint32_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_u32(
                    INTRINSIC_CAST(TArg1, uint32_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                    1
                );
                return;
            }
            case 2:
            {
                vst1q_lane_u32(
                    INTRINSIC_CAST(TArg1, uint32_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                    2
                );
                return;
            }
            case 3:
            {
                vst1q_lane_u32(
                    INTRINSIC_CAST(TArg1, uint32_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
                    3
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_62947(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_u32(
            INTRINSIC_CAST(TArg1, uint32_t *, arg1),
            INTRINSIC_CAST(TArg2, uint32x4_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.UInt32*,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_3DD82(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1_lane_u32(
                    INTRINSIC_CAST(TArg1, uint32_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1_lane_u32(
                    INTRINSIC_CAST(TArg1, uint32_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
                    1
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_3DD82(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1_lane_u32(
            INTRINSIC_CAST(TArg1, uint32_t *, arg1),
            INTRINSIC_CAST(TArg2, uint32x2_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd::StoreSelectedScalar(System.UInt64*,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [2]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B674D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                vst1q_lane_u64(
                    INTRINSIC_CAST(TArg1, uint64_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                    0
                );
                return;
            }
            case 1:
            {
                vst1q_lane_u64(
                    INTRINSIC_CAST(TArg1, uint64_t *, arg1),
                    INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
                    1
                );
                return;
            }
            default:
                il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                break;
        }
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, int TArg3Value>
    inline TRet il2cpp_intrinsic_adv_simd_store_selected_scalar_B674D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        vst1q_lane_u64(
            INTRINSIC_CAST(TArg1, uint64_t *, arg1),
            INTRINSIC_CAST(TArg2, uint64x2_t, arg2),
            TArg3Value
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }
} // namespace Arm
} // namespace Intrinsics
} // namespace Runtime
} // namespace System
} // namespace System_Private_CoreLib
} // namespace intrinsics
} // namespace il2cpp
