#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
{
namespace AdvSimd
{
    /* METHOD MAPPING
        Method: System.Boolean System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::get_IsSupported()
        AssemblyName: System.Private.CoreLib
    */
    inline bool il2cpp_intrinsic_arm64_get_is_supported()
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return true;
#else
        return false;
#endif
    }

    /* METHOD MAPPING
        Method: System.Runtime.Intrinsics.Vector128`1<System.Byte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddPairwise(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_arm64_add_pairwise_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vpaddq_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/Arm64::AddSaturate(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_arm64_add_saturate_A0EC1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vsqaddq_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_6AD70(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 8:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 9:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 10:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 11:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 12:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 13:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 14:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 15:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_6AD70(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcopyq_laneq_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_B3E7A(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 8:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 9:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 10:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 11:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 12:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 13:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 14:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 15:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x16_t, TRet, vcopyq_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_B3E7A(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x16_t, TRet, vcopyq_lane_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxPairwise(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_arm64_max_pairwise_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vpmaxq_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/Arm64::MinPairwise(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_arm64_min_pairwise_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vpminq_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/Arm64::ReverseElementBits(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reverse_element_bits_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vrbitq_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/Arm64::TransposeEven(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_arm64_transpose_even_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vuzp2q_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/Arm64::VectorTableLookup(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_arm64_vector_table_lookup_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbl1q_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/Arm64::VectorTableLookup(System.ValueTuple`2<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>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_A7C06(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbl2q_u8(
                INTRINSIC_CAST(TArg1, uint8x16x2_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/Arm64::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.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_F71E4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbl3q_u8(
                INTRINSIC_CAST(TArg1, uint8x16x3_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/Arm64::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.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_0C810(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbl4q_u8(
                INTRINSIC_CAST(TArg1, uint8x16x4_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/Arm64::VectorTableLookupExtension(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_arm64_vector_table_lookup_extension_1BA1A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbx1q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_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/Arm64::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.ValueTuple`2<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_arm64_vector_table_lookup_extension_2D376(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbx2q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16x2_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/Arm64::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`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.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_extension_33A18(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbx3q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16x3_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/Arm64::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`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.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_extension_1A425(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vqtbx4q_u8(
                INTRINSIC_CAST(TArg1, uint8x16_t, arg1),
                INTRINSIC_CAST(TArg2, uint8x16x4_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/Arm64::ZipHigh(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_arm64_zip_high_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_9571C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x16_t, TRet, vzip1q_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/Arm64::Abs(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vabsq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::AbsoluteCompareGreaterThan(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_arm64_absolute_compare_greater_than(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcagtq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::AbsoluteCompareGreaterThanOrEqual(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_arm64_absolute_compare_greater_than_or_equal(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcageq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::AbsoluteCompareLessThan(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_arm64_absolute_compare_less_than(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcaltq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::AbsoluteCompareLessThanOrEqual(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_arm64_absolute_compare_less_than_or_equal(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcaleq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::AbsoluteDifference(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_arm64_absolute_difference(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vabdq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::Add(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_arm64_add(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vaddq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::AddPairwise(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_arm64_add_pairwise_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vpaddq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::Ceiling(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_ceiling(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndpq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::CompareEqual(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_arm64_compare_equal_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vceqq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::CompareGreaterThan(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_arm64_compare_greater_than_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcgtq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::CompareGreaterThanOrEqual(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_arm64_compare_greater_than_or_equal_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcgeq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::CompareLessThan(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_arm64_compare_less_than_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcltq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::CompareLessThanOrEqual(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_arm64_compare_less_than_or_equal_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcleq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::CompareTest(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_arm64_compare_test_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vtstq_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/Arm64::ConvertToDouble(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_double_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vcvtq_f64_s64(
                INTRINSIC_CAST(TArg1, int64x2_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/Arm64::ConvertToDouble(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_double_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vcvtq_f64_u64(
                INTRINSIC_CAST(TArg1, uint64x2_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/Arm64::ConvertToDouble(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_double_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vcvt_f64_f32(
                INTRINSIC_CAST(TArg1, float32x2_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/Arm64::ConvertToDoubleUpper(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_double_upper(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vcvt_high_f64_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.Double> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::Divide(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_arm64_divide_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vdivq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::DuplicateSelectedScalarToVector128(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_arm64_duplicate_selected_scalar_to_vector128_34F90(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vdupq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vdupq_laneq_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_arm64_duplicate_selected_scalar_to_vector128_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(
            float64x2_t, TRet, vdupq_laneq_f64(
                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/Arm64::DuplicateToVector128(System.Double)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_duplicate_to_vector128_0394E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vdupq_n_f64(
                INTRINSIC_CAST(TArg1, float64_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/Arm64::Floor(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_floor(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndmq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::FusedMultiplyAdd(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_arm64_fused_multiply_add(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vfmaq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::FusedMultiplyAddByScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`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_arm64_fused_multiply_add_by_scalar_A8F0C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vfmaq_n_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                INTRINSIC_CAST(TArg3, float64_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/Arm64::FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,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_arm64_fused_multiply_add_by_selected_scalar_F69FC(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vfmaq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vfmaq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_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_arm64_fused_multiply_add_by_selected_scalar_F69FC(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vfmaq_laneq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplySubtract(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_arm64_fused_multiply_subtract(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vfmsq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::FusedMultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`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_arm64_fused_multiply_subtract_by_scalar_A8F0C(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vfmsq_n_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                INTRINSIC_CAST(TArg3, float64_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/Arm64::FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,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_arm64_fused_multiply_subtract_by_selected_scalar_F69FC(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vfmsq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vfmsq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_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_arm64_fused_multiply_subtract_by_selected_scalar_F69FC(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vfmsq_laneq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_8382B(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float64x2_t, TRet, vcopyq_laneq_f64(
                                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float64x2_t, TRet, vcopyq_laneq_f64(
                                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float64x2_t, TRet, vcopyq_laneq_f64(
                                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float64x2_t, TRet, vcopyq_laneq_f64(
                                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_8382B(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64x2_t, TRet, vcopyq_laneq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::LoadAndReplicateToVector128(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_and_replicate_to_vector128_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vld1q_dup_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/Arm64::Max(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_arm64_max(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vmaxq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MaxNumber(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_arm64_max_number(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vmaxnmq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MaxNumberPairwise(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_arm64_max_number_pairwise_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vpmaxnmq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MaxPairwise(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_arm64_max_pairwise_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vpmaxq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::Min(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_arm64_min(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vminq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MinNumber(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_arm64_min_number(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vminnmq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MinNumberPairwise(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_arm64_min_number_pairwise_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vpminnmq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MinPairwise(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_arm64_min_pairwise_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vpminq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::Multiply(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_arm64_multiply(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vmulq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MultiplyByScalar(System.Runtime.Intrinsics.Vector128`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_arm64_multiply_by_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vmulq_n_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64_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/Arm64::MultiplyBySelectedScalar(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_arm64_multiply_by_selected_scalar(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vmulq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vmulq_laneq_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_arm64_multiply_by_selected_scalar(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, vmulq_laneq_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/Arm64::MultiplyExtended(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_arm64_multiply_extended_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vmulxq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::MultiplyExtendedByScalar(System.Runtime.Intrinsics.Vector128`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_arm64_multiply_extended_by_scalar(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vmulxq_lane_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x1_t, arg2),
                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/Arm64::MultiplyExtendedBySelectedScalar(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_arm64_multiply_extended_by_selected_scalar_A3CAA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vmulxq_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64x2_t, TRet, vmulxq_laneq_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_arm64_multiply_extended_by_selected_scalar_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, vmulxq_laneq_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/Arm64::Negate(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vnegq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ReciprocalEstimate(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_estimate(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrecpeq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ReciprocalSquareRootEstimate(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_square_root_estimate(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrsqrteq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ReciprocalSquareRootStep(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_arm64_reciprocal_square_root_step(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrsqrtsq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::ReciprocalStep(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_arm64_reciprocal_step(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrecpsq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::RoundAwayFromZero(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_round_away_from_zero(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndaq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::RoundToNearest(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_round_to_nearest(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndnq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_round_to_negative_infinity(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndmq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_round_to_positive_infinity(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndpq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::RoundToZero(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_round_to_zero(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vrndq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::Sqrt(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_sqrt_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vsqrtq_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::Subtract(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_arm64_subtract(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vsubq_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::TransposeEven(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_arm64_transpose_even_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vtrn1q_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::TransposeOdd(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_arm64_transpose_odd_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vtrn2q_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::UnzipEven(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_arm64_unzip_even_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vuzp1q_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::UnzipOdd(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_arm64_unzip_odd_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vuzp2q_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::ZipHigh(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_arm64_zip_high_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vzip2q_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::ZipLow(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_arm64_zip_low_EDABB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x2_t, TRet, vzip1q_f64(
                INTRINSIC_CAST(TArg1, float64x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::AddPairwise(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_arm64_add_pairwise_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vpaddq_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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_3A236(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vuqaddq_s16(
                INTRINSIC_CAST(TArg1, int16x8_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.Int16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_F93BE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_F93BE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vcopyq_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5977F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x8_t, TRet, vcopyq_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5977F(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x8_t, TRet, vcopyq_lane_s16(
                INTRINSIC_CAST(TArg1, int16x8_t, arg1),
                TArg2Value,
                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/Arm64::MaxPairwise(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_arm64_max_pairwise_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vpmaxq_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/Arm64::MinPairwise(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_arm64_min_pairwise_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vpminq_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/Arm64::TransposeEven(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_arm64_transpose_even_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_B23C8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x8_t, TRet, vzip1q_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/Arm64::AddPairwise(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_arm64_add_pairwise_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vpaddq_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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_2D991(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vuqaddq_s32(
                INTRINSIC_CAST(TArg1, int32x4_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.Int32> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_9F9FE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_9F9FE(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vcopyq_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5D021(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x4_t, TRet, vcopyq_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5D021(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x4_t, TRet, vcopyq_lane_s32(
                INTRINSIC_CAST(TArg1, int32x4_t, arg1),
                TArg2Value,
                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/Arm64::MaxPairwise(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_arm64_max_pairwise_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vpmaxq_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/Arm64::MinPairwise(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_arm64_min_pairwise_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vpminq_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/Arm64::TransposeEven(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_arm64_transpose_even_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_DBCD4(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x4_t, TRet, vzip1q_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/Arm64::AbsSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_saturate(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqabsq_s64(
                INTRINSIC_CAST(TArg1, int64x2_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/Arm64::AddPairwise(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_arm64_add_pairwise_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vpaddq_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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_46DB8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vuqaddq_s64(
                INTRINSIC_CAST(TArg1, int64x2_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::CompareEqual(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_arm64_compare_equal_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vceqq_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/Arm64::CompareGreaterThan(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_arm64_compare_greater_than_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcgtq_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/Arm64::CompareGreaterThanOrEqual(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_arm64_compare_greater_than_or_equal_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcgeq_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/Arm64::CompareLessThan(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_arm64_compare_less_than_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcltq_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/Arm64::CompareLessThanOrEqual(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_arm64_compare_less_than_or_equal_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcleq_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/Arm64::CompareTest(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_arm64_compare_test_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vtstq_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/Arm64::ConvertToInt64RoundAwayFromZero(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_away_from_zero(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vcvtaq_s64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToInt64RoundToEven(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_even(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vcvtnq_s64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToInt64RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_negative_infinity(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vcvtmq_s64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToInt64RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_positive_infinity(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vcvtpq_s64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToInt64RoundToZero(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_zero(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vcvtq_s64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::DuplicateSelectedScalarToVector128(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_arm64_duplicate_selected_scalar_to_vector128_C8D87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vdupq_laneq_s64(
                        INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    int64x2_t, TRet, vdupq_laneq_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_arm64_duplicate_selected_scalar_to_vector128_C8D87(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(
            int64x2_t, TRet, vdupq_laneq_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/Arm64::DuplicateToVector128(System.Int64)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_duplicate_to_vector128_FA68D(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vdupq_n_s64(
                INTRINSIC_CAST(TArg1, int64_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_72A6E(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int64x2_t, TRet, vcopyq_laneq_s64(
                                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int64x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int64x2_t, TRet, vcopyq_laneq_s64(
                                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int64x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int64x2_t, TRet, vcopyq_laneq_s64(
                                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int64x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int64x2_t, TRet, vcopyq_laneq_s64(
                                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int64x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_72A6E(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int64x2_t, TRet, vcopyq_laneq_s64(
                INTRINSIC_CAST(TArg1, int64x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, int64x2_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/Arm64::LoadAndReplicateToVector128(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_and_replicate_to_vector128_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vld1q_dup_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/Arm64::Negate(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vnegq_s64(
                INTRINSIC_CAST(TArg1, int64x2_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/Arm64::NegateSaturate(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_saturate(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vqnegq_s64(
                INTRINSIC_CAST(TArg1, int64x2_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/Arm64::TransposeEven(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_arm64_transpose_even_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_6C932(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vzip1q_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddPairwise(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_arm64_add_pairwise_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vpaddq_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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_3D64F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vuqaddq_s8(
                INTRINSIC_CAST(TArg1, int8x16_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_B252D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 8:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 9:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 10:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 11:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 12:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 13:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 14:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 15:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_B252D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vcopyq_laneq_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_2DAAC(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 8:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                8,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 9:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                9,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 10:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                10,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 11:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                11,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 12:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                12,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 13:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                13,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 14:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                14,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 15:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x16_t, TRet, vcopyq_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                                15,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_2DAAC(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x16_t, TRet, vcopyq_lane_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxPairwise(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_arm64_max_pairwise_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vpmaxq_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/Arm64::MinPairwise(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_arm64_min_pairwise_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vpminq_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/Arm64::ReverseElementBits(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reverse_element_bits_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vrbitq_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/Arm64::TransposeEven(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_arm64_transpose_even_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vtrn1q_u8(
                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/Arm64::TransposeOdd(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_arm64_transpose_odd_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vtrn2q_u8(
                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/Arm64::UnzipEven(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_arm64_unzip_even_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vuzp1q_u8(
                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/Arm64::UnzipOdd(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_arm64_unzip_odd_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vuzp2q_u8(
                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/Arm64::VectorTableLookup(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_arm64_vector_table_lookup_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbl1q_s8(
                INTRINSIC_CAST(TArg1, int8x16_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::VectorTableLookup(System.ValueTuple`2<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>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_A247D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbl2q_s8(
                INTRINSIC_CAST(TArg1, int8x16x2_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::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.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_8C52C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbl3q_s8(
                INTRINSIC_CAST(TArg1, int8x16x3_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::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.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_5D80A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbl4q_s8(
                INTRINSIC_CAST(TArg1, int8x16x4_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::VectorTableLookupExtension(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_arm64_vector_table_lookup_extension_63324(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbx1q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.ValueTuple`2<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_arm64_vector_table_lookup_extension_74B5B(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
//  A64: TBX Vd.16B, {Vn.16B, Vn+1.16B}, Vm.16B
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbx2q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16x2_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`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.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_extension_0CD59(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbx3q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16x3_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`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.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3>
    inline TRet il2cpp_intrinsic_arm64_vector_table_lookup_extension_6C7CB(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vqtbx4q_s8(
                INTRINSIC_CAST(TArg1, int8x16_t, arg1),
                INTRINSIC_CAST(TArg2, int8x16x4_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ZipHigh(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_arm64_zip_high_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vzip2q_u8(
                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/Arm64::ZipLow(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_arm64_zip_low_FF0D8(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x16_t, TRet, vzip1q_u8(
                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/Arm64::AddPairwise(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_arm64_add_pairwise_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vpaddq_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/Arm64::ConvertToSingleRoundToOddUpper(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_convert_to_single_round_to_odd_upper(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vcvtx_high_f32_f64(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::ConvertToSingleUpper(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_convert_to_single_upper(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vcvt_high_f32_f64(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float64x2_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/Arm64::Divide(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_arm64_divide_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vdivq_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/Arm64::FusedMultiplyAddByScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,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, typename TArg3>
    inline TRet il2cpp_intrinsic_arm64_fused_multiply_add_by_scalar_ED98E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmaq_n_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                vget_lane_f32(INTRINSIC_CAST(TArg3, float32x2_t, arg3), 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/Arm64::FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,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_arm64_fused_multiply_add_by_selected_scalar_F890E(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmaq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmaq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmaq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmaq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_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_arm64_fused_multiply_add_by_selected_scalar_F890E(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmaq_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,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_arm64_fused_multiply_add_by_selected_scalar_E3063(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmaq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmaq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_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_arm64_fused_multiply_add_by_selected_scalar_E3063(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmaq_lane_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplySubtractByScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,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, typename TArg3>
    inline TRet il2cpp_intrinsic_arm64_fused_multiply_subtract_by_scalar_ED98E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmsq_n_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                vget_lane_f32(INTRINSIC_CAST(TArg3, float32x2_t, arg3), 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/Arm64::FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,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_arm64_fused_multiply_subtract_by_selected_scalar_F890E(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmsq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmsq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmsq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmsq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_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_arm64_fused_multiply_subtract_by_selected_scalar_F890E(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmsq_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,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_arm64_fused_multiply_subtract_by_selected_scalar_E3063(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmsq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vfmsq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_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_arm64_fused_multiply_subtract_by_selected_scalar_E3063(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vfmsq_lane_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_4D687(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_4D687(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vcopyq_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_522C1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x4_t, TRet, vcopyq_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_522C1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vcopyq_lane_f32(
                INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxNumberPairwise(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_arm64_max_number_pairwise_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vpmaxnmq_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/Arm64::MaxPairwise(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_arm64_max_pairwise_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vpmaxq_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/Arm64::MinNumberPairwise(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_arm64_min_number_pairwise_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vpminnmq_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/Arm64::MinPairwise(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_arm64_min_pairwise_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vpminq_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/Arm64::MultiplyExtended(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_arm64_multiply_extended_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vmulxq_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/Arm64::MultiplyExtendedBySelectedScalar(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_arm64_multiply_extended_by_selected_scalar_AEBBD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulxq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulxq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulxq_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulxq_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_arm64_multiply_extended_by_selected_scalar_AEBBD(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x4_t, TRet, vmulxq_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/Arm64::MultiplyExtendedBySelectedScalar(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_arm64_multiply_extended_by_selected_scalar_77E87(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulxq_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x4_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x4_t, TRet, vmulxq_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_arm64_multiply_extended_by_selected_scalar_77E87(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(
            float32x4_t, TRet, vmulxq_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/Arm64::Sqrt(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_sqrt_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vsqrtq_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/Arm64::TransposeEven(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_arm64_transpose_even_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_A51C1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x4_t, TRet, vzip1q_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.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddPairwise(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_arm64_add_pairwise_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vpaddq_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/Arm64::AddSaturate(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_arm64_add_saturate_B36A7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vsqaddq_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_6AF63(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_6AF63(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcopyq_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5BC15(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x8_t, TRet, vcopyq_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5BC15(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x8_t, TRet, vcopyq_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x8_t, arg1),
                TArg2Value,
                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/Arm64::MaxPairwise(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_arm64_max_pairwise_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vpmaxq_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/Arm64::MinPairwise(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_arm64_min_pairwise_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vpminq_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/Arm64::TransposeEven(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_arm64_transpose_even_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_899B1(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x8_t, TRet, vzip1q_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/Arm64::AddPairwise(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_arm64_add_pairwise_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vpaddq_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/Arm64::AddSaturate(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_arm64_add_saturate_4750A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vsqaddq_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_8B3DD(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_8B3DD(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcopyq_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_FA9B6(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x4_t, TRet, vcopyq_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_FA9B6(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x4_t, TRet, vcopyq_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x4_t, arg1),
                TArg2Value,
                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/Arm64::MaxPairwise(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_arm64_max_pairwise_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vpmaxq_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/Arm64::MinPairwise(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_arm64_min_pairwise_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vpminq_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/Arm64::TransposeEven(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_arm64_transpose_even_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_A1D32(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x4_t, TRet, vzip1q_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/Arm64::Abs(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x2_t, TRet, vabsq_s64(
                INTRINSIC_CAST(TArg1, int64x2_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/Arm64::AddPairwise(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_arm64_add_pairwise_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vpaddq_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/Arm64::AddSaturate(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_arm64_add_saturate_97035(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vsqaddq_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/Arm64::CompareEqual(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_arm64_compare_equal_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vceqq_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/Arm64::CompareGreaterThan(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_arm64_compare_greater_than_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcgtq_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/Arm64::CompareGreaterThanOrEqual(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_arm64_compare_greater_than_or_equal_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcgeq_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/Arm64::CompareLessThan(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_arm64_compare_less_than_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcltq_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/Arm64::CompareLessThanOrEqual(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_arm64_compare_less_than_or_equal_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcleq_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/Arm64::CompareTest(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_arm64_compare_test_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vtstq_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/Arm64::ConvertToUInt64RoundAwayFromZero(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_away_from_zero(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcvtaq_u64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToUInt64RoundToEven(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_even(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcvtnq_u64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToUInt64RoundToNegativeInfinity(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_negative_infinity(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcvtmq_u64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToUInt64RoundToPositiveInfinity(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_positive_infinity(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcvtpq_u64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToUInt64RoundToZero(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_zero(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcvtq_u64_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::DuplicateSelectedScalarToVector128(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_arm64_duplicate_selected_scalar_to_vector128_05C33(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vdupq_laneq_u64(
                        INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    uint64x2_t, TRet, vdupq_laneq_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_arm64_duplicate_selected_scalar_to_vector128_05C33(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(
            uint64x2_t, TRet, vdupq_laneq_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/Arm64::DuplicateToVector128(System.UInt64)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_duplicate_to_vector128_27CAD(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vdupq_n_s64(
                INTRINSIC_CAST(TArg1, uint64_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_E9165(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint64x2_t, TRet, vcopyq_laneq_u64(
                                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint64x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint64x2_t, TRet, vcopyq_laneq_u64(
                                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint64x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint64x2_t, TRet, vcopyq_laneq_u64(
                                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint64x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint64x2_t, TRet, vcopyq_laneq_u64(
                                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint64x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_E9165(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint64x2_t, TRet, vcopyq_laneq_u64(
                INTRINSIC_CAST(TArg1, uint64x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, uint64x2_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/Arm64::LoadAndReplicateToVector128(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_and_replicate_to_vector128_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vld1q_dup_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/Arm64::TransposeEven(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_arm64_transpose_even_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vtrn1q_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/Arm64::TransposeOdd(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_arm64_transpose_odd_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vtrn2q_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/Arm64::UnzipEven(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_arm64_unzip_even_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vuzp1q_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/Arm64::UnzipOdd(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_arm64_unzip_odd_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vuzp2q_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/Arm64::ZipHigh(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_arm64_zip_high_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vzip2q_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/Arm64::ZipLow(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_arm64_zip_low_638EB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x2_t, TRet, vzip1q_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.Byte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddAcross(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vaddvq_u8(INTRINSIC_CAST(TArg1, uint8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::AddAcross(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vaddv_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::AddSaturate(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_arm64_add_saturate_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vsqadd_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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqaddb_u8(vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0), vget_lane_u8(INTRINSIC_CAST(TArg2, uint8x8_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vsqaddb_u8(vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0), vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_scalar_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqmovnh_u16(vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_unsigned_scalar_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqmovunh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5AE6C(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_laneq_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_5AE6C(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcopy_laneq_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, uint8x16_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_E0351(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint8x8_t, TRet, vcopy_lane_u8(
                                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_E0351(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint8x8_t, TRet, vcopy_lane_u8(
                INTRINSIC_CAST(TArg1, uint8x8_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, uint8x8_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vmaxvq_u8(INTRINSIC_CAST(TArg1, uint8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vmaxv_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vminvq_u8(INTRINSIC_CAST(TArg1, uint8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vminv_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ReverseElementBits(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reverse_element_bits_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vrbit_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/Arm64::ShiftLeftLogicalSaturateScalar(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_arm64_shift_left_logical_saturate_scalar_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 1:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_u8(
                    vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_scalar_311CC(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqshlb_n_u8(
            vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftLeftLogicalSaturateUnsignedScalar(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_arm64_shift_left_logical_saturate_unsigned_scalar_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 1:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 2:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 3:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 4:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 5:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 6:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 7:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlub_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_unsigned_scalar_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int8x8_t  ret = {};
        ret = vset_lane_s8(vqshlub_n_s8(
            vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ShiftLogicalRoundedSaturateScalar(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_arm64_shift_logical_rounded_saturate_scalar_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqrshlb_u8(vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0), vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftLogicalSaturateScalar(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_arm64_shift_logical_saturate_scalar_BA620(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqshlb_u8(vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0), vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticNarrowingSaturateUnsignedScalar(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_arm64_shift_right_arithmetic_narrowing_saturate_unsigned_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 8:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_narrowing_saturate_unsigned_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int8x8_t  ret = {};
        ret = vset_lane_s8(vqshrunh_n_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(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_arm64_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 8:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrunh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int8x8_t  ret = {};
        ret = vset_lane_s8(vqrshrunh_n_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightLogicalNarrowingSaturateScalar(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_arm64_shift_right_logical_narrowing_saturate_scalar_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 8:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_narrowing_saturate_scalar_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqshrnh_n_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightLogicalRoundedNarrowingSaturateScalar(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_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 8:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqrshrnh_n_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::SubtractSaturateScalar(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_arm64_subtract_saturate_scalar_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqsubb_u8(
            vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
            vget_lane_u8(INTRINSIC_CAST(TArg2, uint8x8_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::TransposeEven(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_arm64_transpose_even_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_A8DCB(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint8x8_t, TRet, vzip1_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/Arm64::AbsoluteCompareGreaterThanOrEqualScalar(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_arm64_absolute_compare_greater_than_or_equal_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcage_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/Arm64::AbsoluteCompareGreaterThanScalar(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_arm64_absolute_compare_greater_than_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcagt_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/Arm64::AbsoluteCompareLessThanOrEqualScalar(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_arm64_absolute_compare_less_than_or_equal_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcale_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/Arm64::AbsoluteCompareLessThanScalar(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_arm64_absolute_compare_less_than_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcalt_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/Arm64::AbsoluteDifferenceScalar(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_arm64_absolute_difference_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vabd_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/Arm64::AddPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_pairwise_scalar_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64_t, TRet, vpaddd_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::CompareEqualScalar(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_arm64_compare_equal_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vceq_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/Arm64::CompareGreaterThanOrEqualScalar(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_arm64_compare_greater_than_or_equal_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcge_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/Arm64::CompareGreaterThanScalar(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_arm64_compare_greater_than_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcgt_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/Arm64::CompareLessThanOrEqualScalar(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_arm64_compare_less_than_or_equal_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcle_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/Arm64::CompareLessThanScalar(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_arm64_compare_less_than_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vclt_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/Arm64::CompareTestScalar(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_arm64_compare_test_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vtst_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/Arm64::ConvertToDoubleScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_double_scalar_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vcvt_f64_s64(
                INTRINSIC_CAST(TArg1, int64x1_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/Arm64::ConvertToDoubleScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_double_scalar_F7831(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vcvt_f64_u64(
                INTRINSIC_CAST(TArg1, uint64x1_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/Arm64::FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,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_arm64_fused_multiply_add_scalar_by_selected_scalar_2B356(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vfmad_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_t, arg1),
                        INTRINSIC_CAST(TArg2, float64_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vfmad_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_t, arg1),
                        INTRINSIC_CAST(TArg2, float64_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_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_arm64_fused_multiply_add_scalar_by_selected_scalar_2B356(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64_t, TRet, vfmad_laneq_f64(
                INTRINSIC_CAST(TArg1, float64_t, arg1),
                INTRINSIC_CAST(TArg2, float64_t, arg2),
                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>,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_arm64_fused_multiply_subtract_scalar_by_selected_scalar_2B356(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vfmsd_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_t, arg1),
                        INTRINSIC_CAST(TArg2, float64_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vfmsd_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_t, arg1),
                        INTRINSIC_CAST(TArg2, float64_t, arg2),
                        INTRINSIC_CAST(TArg3, float64x2_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_arm64_fused_multiply_subtract_scalar_by_selected_scalar_2B356(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float64_t, TRet, vfmsd_laneq_f64(
                INTRINSIC_CAST(TArg1, float64_t, arg1),
                INTRINSIC_CAST(TArg2, float64_t, arg2),
                INTRINSIC_CAST(TArg3, float64x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxNumberPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_number_pairwise_scalar_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64_t, TRet, vpmaxnmqd_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::MaxPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_pairwise_scalar_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64_t, TRet, vpmaxqd_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::MaxScalar(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_arm64_max_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vmax_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/Arm64::MinNumberPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_number_pairwise_scalar_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64_t, TRet, vpminnmqd_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::MinPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_pairwise_scalar_593F6(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64_t, TRet, vpminqd_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::MinScalar(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_arm64_min_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vmin_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/Arm64::MultiplyExtendedScalar(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_arm64_multiply_extended_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vmulx_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/Arm64::MultiplyExtendedScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_extended_scalar_by_selected_scalar_9DCB0(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vmulxd_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vmulxd_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_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_arm64_multiply_extended_scalar_by_selected_scalar_9DCB0(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(
            float64_t, TRet, vmulxd_laneq_f64(
                INTRINSIC_CAST(TArg1, float64_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.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::MultiplyScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_scalar_by_selected_scalar(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vmuld_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_t, arg1),
                        INTRINSIC_CAST(TArg2, float64x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float64_t, TRet, vmuld_laneq_f64(
                        INTRINSIC_CAST(TArg1, float64_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_arm64_multiply_scalar_by_selected_scalar(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(
            float64_t, TRet, vmuld_laneq_f64(
                INTRINSIC_CAST(TArg1, float64_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.Vector64`1<System.Double> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ReciprocalEstimateScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_estimate_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrecpe_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/Arm64::ReciprocalExponentScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_exponent_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64_t, TRet, vrecpxd_f64(
                INTRINSIC_CAST(TArg1, float64_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/Arm64::ReciprocalSquareRootEstimateScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_square_root_estimate_scalar_D4A88(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrsqrte_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/Arm64::ReciprocalSquareRootStepScalar(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_arm64_reciprocal_square_root_step_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrsqrts_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/Arm64::ReciprocalStepScalar(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_arm64_reciprocal_step_scalar_6216F(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float64x1_t, TRet, vrecps_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.Int16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AbsSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_saturate_scalar_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqabsh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::AddAcross(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vaddvq_s16(INTRINSIC_CAST(TArg1, int16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::AddAcross(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vaddv_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vaddlvq_s8(INTRINSIC_CAST(TArg1, int8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vaddlv_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_3ABB0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vuqadd_s16(
                INTRINSIC_CAST(TArg1, int16x4_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.Int16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqaddh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::AddSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_scalar_3ABB0(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vuqaddh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0), vget_lane_u16(INTRINSIC_CAST(TArg2, uint16x4_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_scalar_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqmovns_s32(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_16AB8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_laneq_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_16AB8(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vcopy_laneq_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_77493(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int16x4_t, TRet, vcopy_lane_s16(
                                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_77493(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int16x4_t, TRet, vcopy_lane_s16(
                INTRINSIC_CAST(TArg1, int16x4_t, arg1),
                TArg2Value,
                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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vmaxvq_s16(INTRINSIC_CAST(TArg1, int16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vmaxv_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vminvq_s16(INTRINSIC_CAST(TArg1, int16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vminv_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MultiplyDoublingSaturateHighScalar(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_arm64_multiply_doubling_saturate_high_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqdmulhh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 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.Int16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::MultiplyDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqdmulhh_laneq_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int16x8_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MultiplyDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqdmulhh_lane_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int16x4_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MultiplyRoundedDoublingSaturateHighScalar(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_arm64_multiply_rounded_doubling_saturate_high_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqrdmulhh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqrdmulhh_laneq_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int16x8_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrdmulhh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqrdmulhh_lane_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int16x4_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::NegateSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_saturate_scalar_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqnegh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ShiftArithmeticRoundedSaturateScalar(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_arm64_shift_arithmetic_rounded_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqrshlh_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ShiftArithmeticSaturateScalar(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_arm64_shift_arithmetic_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqshlh_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ShiftLeftLogicalSaturateScalar(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_arm64_shift_left_logical_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 8:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 9:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 10:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 11:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 12:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 13:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 14:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 15:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshlh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqshlh_n_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ShiftLogicalRoundedSaturateScalar(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_arm64_shift_logical_rounded_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqrshlh_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftLogicalSaturateScalar(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_arm64_shift_logical_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqshlh_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticNarrowingSaturateScalar(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_arm64_shift_right_arithmetic_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 8:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 9:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 10:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 11:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 12:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 13:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 14:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 15:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 16:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqshrns_n_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticRoundedNarrowingSaturateScalar(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_arm64_shift_right_arithmetic_rounded_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 8:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 9:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 10:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 11:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 12:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 13:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 14:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 15:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_t, TRet, ret);
            }
            case 16:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshrns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_rounded_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqrshrns_n_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::ShiftRightLogicalNarrowingSaturateScalar(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_arm64_shift_right_logical_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 16:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint16x4_t ret = {};
        ret = vset_lane_u16(vqshrns_n_u32(
            vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftRightLogicalRoundedNarrowingSaturateScalar(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_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 16:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint16x4_t ret = {};
        ret = vset_lane_u16(vqrshrns_n_u32(
            vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::SubtractSaturateScalar(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_arm64_subtract_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int16x4_t ret = {};
        ret = vset_lane_s16(vqsubh_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int16x4_t, TRet, ret);
#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/Arm64::TransposeEven(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_arm64_transpose_even_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int16x4_t, TRet, vzip1_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/Arm64::AbsSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_saturate_scalar_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqabss_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.Int32> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddAcross(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vaddvq_s32(INTRINSIC_CAST(TArg1, int32x4_t, arg1)), 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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector128`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_2A842(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vaddlvq_s16(INTRINSIC_CAST(TArg1, int16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vaddlv_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1)), 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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_5825C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vuqadd_s32(
                INTRINSIC_CAST(TArg1, int32x2_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.Int32> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqadds_s32(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0), vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 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/Arm64::AddSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_scalar_5825C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vuqadds_s32(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0), vget_lane_u32(INTRINSIC_CAST(TArg2, uint32x2_t, arg2), 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/Arm64::ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_scalar_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqmovnd_s64(vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(int64x1_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_1E7D1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_laneq_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_1E7D1(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vcopy_laneq_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_C6248(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int32x2_t, TRet, vcopy_lane_s32(
                                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_C6248(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int32x2_t, TRet, vcopy_lane_s32(
                INTRINSIC_CAST(TArg1, int32x2_t, arg1),
                TArg2Value,
                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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vmaxvq_s32(INTRINSIC_CAST(TArg1, int32x4_t, arg1)), 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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vminvq_s32(INTRINSIC_CAST(TArg1, int32x4_t, arg1)), 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/Arm64::MultiplyDoublingSaturateHighScalar(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_arm64_multiply_doubling_saturate_high_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmulhs_s32(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0), vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 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.Int32> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::MultiplyDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmulhs_laneq_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int32x4_t, arg2),
            TArg3Value
            ), 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/Arm64::MultiplyDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmulhs_lane_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmulhs_lane_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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_arm64_multiply_doubling_scalar_by_selected_scalar_saturate_high_ECA30(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);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmulhs_lane_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int32x2_t, arg2),
            TArg3Value
            ), 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/Arm64::MultiplyDoublingWideningAndAddSaturateScalar(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_and_add_saturate_scalar_A6D37(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmlalh_s16(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0), vget_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::MultiplyDoublingWideningAndSubtractSaturateScalar(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_and_subtract_saturate_scalar_A6D37(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmlslh_s16(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0), vget_lane_s16(INTRINSIC_CAST(TArg3, int16x4_t, arg3), 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/Arm64::MultiplyDoublingWideningSaturateScalar(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_arm64_multiply_doubling_widening_saturate_scalar_34549(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmullh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 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/Arm64::MultiplyDoublingWideningSaturateScalarBySelectedScalar(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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_laneq_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x8_t, arg2),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_9FC19(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmullh_laneq_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int16x8_t, arg2),
            TArg3Value
            ), 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/Arm64::MultiplyDoublingWideningSaturateScalarBySelectedScalar(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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmullh_lane_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int16x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_2C050(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmullh_lane_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int16x4_t, arg2),
            TArg3Value
            ), 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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_A7B82(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_A7B82(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmlalh_laneq_s16(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int16x8_t, arg3),
            TArg4Value
            ), 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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_E7F38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlalh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_E7F38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmlalh_lane_s16(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int16x4_t, arg3),
            TArg4Value
            ), 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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_A7B82(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_laneq_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x8_t, arg3),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_A7B82(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmlslh_laneq_s16(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int16x8_t, arg3),
            TArg4Value
            ), 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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_E7F38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqdmlslh_lane_s16(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int16x4_t, arg3),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_E7F38(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqdmlslh_lane_s16(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int16x4_t, arg3),
            TArg4Value
            ), 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/Arm64::MultiplyRoundedDoublingSaturateHighScalar(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_arm64_multiply_rounded_doubling_saturate_high_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqrdmulhs_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 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/Arm64::MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrdmulhs_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqrdmulhs_laneq_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int32x4_t, arg2),
            TArg3Value
            ), 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/Arm64::MultiplyRoundedDoublingScalarBySelectedScalarSaturateHigh(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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrdmulhs_lane_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrdmulhs_lane_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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_arm64_multiply_rounded_doubling_scalar_by_selected_scalar_saturate_high_ECA30(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);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqrdmulhs_lane_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int32x2_t, arg2),
            TArg3Value
            ), 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/Arm64::NegateSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_saturate_scalar_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqnegs_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.Int32> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ShiftArithmeticRoundedSaturateScalar(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_arm64_shift_arithmetic_rounded_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqrshls_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 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/Arm64::ShiftArithmeticSaturateScalar(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_arm64_shift_arithmetic_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqshls_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 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/Arm64::ShiftLeftLogicalSaturateScalar(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_arm64_shift_left_logical_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 8:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 9:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 10:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 11:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 12:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 13:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 14:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 15:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 16:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 17:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 18:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 19:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 20:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 21:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 22:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 23:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 24:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 25:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 26:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 27:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 28:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 29:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 30:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 31:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshls_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqshls_n_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), 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/Arm64::ShiftLogicalRoundedSaturateScalar(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_arm64_shift_logical_rounded_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqrshls_u32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftLogicalSaturateScalar(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_arm64_shift_logical_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqshls_u32(
            vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftRightArithmeticNarrowingSaturateScalar(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_arm64_shift_right_arithmetic_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 8:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 9:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 10:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 11:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 12:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 13:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 14:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 15:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 16:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 17:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 18:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 19:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 20:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 21:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 22:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 23:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 24:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 25:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 26:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 27:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 28:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 29:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 30:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 31:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 32:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqshrnd_n_s64(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            TArg2Value
            ), 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/Arm64::ShiftRightArithmeticRoundedNarrowingSaturateScalar(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_arm64_shift_right_arithmetic_rounded_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 8:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 9:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 10:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 11:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 12:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 13:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 14:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 15:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 16:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 17:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 18:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 19:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 20:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 21:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 22:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 23:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 24:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 25:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 26:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 27:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 28:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 29:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 30:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 31:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 32:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrnd_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_rounded_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqrshrnd_n_s64(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            TArg2Value
            ), 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/Arm64::ShiftRightLogicalNarrowingSaturateScalar(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_arm64_shift_right_logical_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 8:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 9:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 10:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 11:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 12:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 13:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 14:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 15:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 16:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 17:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 18:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 19:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 20:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 21:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 22:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 23:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 24:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 25:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 26:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 27:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 28:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 29:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 30:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 31:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 32:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint32x2_t ret = {};
        ret = vset_lane_u32(vqshrnd_n_u64(
            vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
            TArg2Value
            ), 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/Arm64::ShiftRightLogicalRoundedNarrowingSaturateScalar(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_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 2:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 3:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 4:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 5:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 6:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 7:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 8:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 9:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 10:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 11:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 12:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 13:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 14:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 15:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 16:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 17:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 18:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 19:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 20:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 21:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 22:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 23:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 24:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 25:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 26:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 27:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 28:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 29:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 30:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 31:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_t, TRet, ret);
            }
            case 32:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(int32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint32x2_t ret = {};
        ret = vset_lane_u32(vqrshrnd_n_u64(
            vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
            TArg2Value
            ), 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/Arm64::SubtractSaturateScalar(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_arm64_subtract_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2_t ret = {};
        ret = vset_lane_s32(vqsubs_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 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/Arm64::TransposeEven(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_arm64_transpose_even_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int32x2_t, TRet, vzip1_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/Arm64::AbsSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_saturate_scalar_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64_t, TRet, vqabsd_s64(
                INTRINSIC_CAST(TArg1, int64_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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector128`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_F7B07(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64_t, TRet, vaddlvq_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_pairwise_scalar_55B13(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64_t, TRet, vpaddd_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_scalar_10A99(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vuqadd_s64(
                INTRINSIC_CAST(TArg1, int64x1_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::CompareEqualScalar(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_arm64_compare_equal_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vceq_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/Arm64::CompareGreaterThanOrEqualScalar(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_arm64_compare_greater_than_or_equal_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcge_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/Arm64::CompareGreaterThanScalar(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_arm64_compare_greater_than_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcgt_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/Arm64::CompareLessThanOrEqualScalar(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_arm64_compare_less_than_or_equal_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcle_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/Arm64::CompareLessThanScalar(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_arm64_compare_less_than_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vclt_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/Arm64::CompareTestScalar(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_arm64_compare_test_scalar_6784B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vtst_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/Arm64::ConvertToInt64RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_away_from_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vcvta_s64_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToInt64RoundToEvenScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_even_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vcvtn_s64_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToInt64RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_negative_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vcvtm_s64_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToInt64RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_positive_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vcvtp_s64_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToInt64RoundToZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_int64_round_to_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vcvt_s64_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.Int64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::MultiplyDoublingWideningAndAddSaturateScalar(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_and_add_saturate_scalar_9DBBC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmlals_s32(vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0), vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0), vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningAndSubtractSaturateScalar(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_and_subtract_saturate_scalar_9DBBC(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmlsls_s32(vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0), vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0), vget_lane_s32(INTRINSIC_CAST(TArg3, int32x2_t, arg3), 0)), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningSaturateScalar(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_arm64_multiply_doubling_widening_saturate_scalar_D544C(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmulls_s32(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0), vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningSaturateScalarBySelectedScalar(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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmulls_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 1:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmulls_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 2:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmulls_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 3:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmulls_laneq_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x4_t, arg2),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_9A7BA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmulls_laneq_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int32x4_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningSaturateScalarBySelectedScalar(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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_ECA30(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmulls_lane_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 1:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmulls_lane_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, int32x2_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_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_arm64_multiply_doubling_widening_saturate_scalar_by_selected_scalar_ECA30(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);

        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmulls_lane_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, int32x2_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_58B02(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlals_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 1:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlals_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 2:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlals_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 3:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlals_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_58B02(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmlals_laneq_s32(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int32x4_t, arg3),
            TArg4Value
            ), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndAddSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_47770(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlals_lane_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 1:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlals_lane_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_add_saturate_47770(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmlals_lane_s32(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int32x2_t, arg3),
            TArg4Value
            ), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_58B02(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlsls_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 1:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlsls_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 2:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlsls_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 3:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlsls_laneq_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x4_t, arg3),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_58B02(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmlsls_laneq_s32(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int32x4_t, arg3),
            TArg4Value
            ), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::MultiplyDoublingWideningScalarBySelectedScalarAndSubtractSaturate(System.Runtime.Intrinsics.Vector64`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_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_47770(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlsls_lane_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_t, TRet, ret);
            }
            case 1:
            {
                int64x1_t ret = {};
                ret = vset_lane_s64(vqdmlsls_lane_s32(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, int32x2_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int64x1_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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_multiply_doubling_widening_scalar_by_selected_scalar_and_subtract_saturate_47770(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int64x1_t ret = {};
        ret = vset_lane_s64(vqdmlsls_lane_s32(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, int32x2_t, arg3),
            TArg4Value
            ), ret, 0);
        return INTRINSIC_CAST(int64x1_t, TRet, ret);
#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/Arm64::NegateSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_saturate_scalar_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64_t, TRet, vqnegd_s64(
                INTRINSIC_CAST(TArg1, int64_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/Arm64::NegateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vneg_s64(
                INTRINSIC_CAST(TArg1, int64x1_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/Arm64::AbsSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_saturate_scalar_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqabsb_s8(vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddAcross(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vaddvq_s8(INTRINSIC_CAST(TArg1, int8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::AddAcross(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vaddv_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::AddSaturate(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_1040E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vuqadd_s8(
                INTRINSIC_CAST(TArg1, int8x8_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/Arm64::AddSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1, typename TArg2>
    inline TRet il2cpp_intrinsic_arm64_add_saturate_scalar_1040E(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vuqaddb_s8(vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0), vget_lane_u8(INTRINSIC_CAST(TArg2, uint8x8_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqaddb_s8(vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0), vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.Int16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_scalar_853D9(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqmovnh_s16(vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_80A79(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                7
                            )
                        );
                    }
                    case 8:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                8
                            )
                        );
                    }
                    case 9:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                9
                            )
                        );
                    }
                    case 10:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                10
                            )
                        );
                    }
                    case 11:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                11
                            )
                        );
                    }
                    case 12:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                12
                            )
                        );
                    }
                    case 13:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                13
                            )
                        );
                    }
                    case 14:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                14
                            )
                        );
                    }
                    case 15:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_laneq_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                                15
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_80A79(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vcopy_laneq_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, int8x16_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_6AE5C(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 4:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                4,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 5:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                5,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 6:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                6,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 7:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            int8x8_t, TRet, vcopy_lane_s8(
                                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                                7,
                                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_6AE5C(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            int8x8_t, TRet, vcopy_lane_s8(
                INTRINSIC_CAST(TArg1, int8x8_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, int8x8_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vmaxvq_s8(INTRINSIC_CAST(TArg1, int8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vmaxv_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_02242(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vminvq_s8(INTRINSIC_CAST(TArg1, int8x16_t, arg1)), 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.SByte> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::MinAcross(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vminv_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::NegateSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_negate_saturate_scalar_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqnegb_s8(
            vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ReverseElementBits(System.Runtime.Intrinsics.Vector64`1<System.SByte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reverse_element_bits_C3699(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vrbit_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/Arm64::ShiftArithmeticRoundedSaturateScalar(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_arm64_shift_arithmetic_rounded_saturate_scalar_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqrshlb_s8(
            vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
            vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ShiftArithmeticSaturateScalar(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_arm64_shift_arithmetic_saturate_scalar_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqshlb_s8(
            vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
            vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ShiftLeftLogicalSaturateScalar(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_arm64_shift_left_logical_saturate_scalar_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 1:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 2:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 3:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 4:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 5:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 6:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 7:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshlb_n_s8(
                    vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_scalar_9E69D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int8x8_t  ret = {};
        ret = vset_lane_s8(vqshlb_n_s8(
            vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ShiftLogicalRoundedSaturateScalar(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_arm64_shift_logical_rounded_saturate_scalar_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqrshlb_u8(
            vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
            vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftLogicalSaturateScalar(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_arm64_shift_logical_saturate_scalar_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqshlb_u8(
            vget_lane_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1), 0),
            vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticNarrowingSaturateScalar(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_arm64_shift_right_arithmetic_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 2:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 3:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 4:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 5:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 6:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 7:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 8:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int8x8_t  ret = {};
        ret = vset_lane_s8(vqshrnh_n_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticRoundedNarrowingSaturateScalar(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_arm64_shift_right_arithmetic_rounded_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 2:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 3:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 4:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 5:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 6:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 7:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 8:
            {
                int8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_rounded_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int8x8_t  ret = {};
        ret = vset_lane_s8(vqrshrnh_n_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::ShiftRightLogicalNarrowingSaturateScalar(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_arm64_shift_right_logical_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 8:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqshrnh_n_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightLogicalRoundedNarrowingSaturateScalar(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_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 2:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 3:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 4:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 5:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 6:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 7:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_t, TRet, ret);
            }
            case 8:
            {
                uint8x8_t  ret = {};
                ret = vset_lane_s8(vqrshrnh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint8x8_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 8)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint8x8_t  ret = {};
        ret = vset_lane_s8(vqrshrnh_n_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::SubtractSaturateScalar(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_arm64_subtract_saturate_scalar_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int8x8_t  ret = {};
        ret = vset_lane_s8(vqsubb_s8(
            vget_lane_s8(INTRINSIC_CAST(TArg1, int8x8_t, arg1), 0),
            vget_lane_s8(INTRINSIC_CAST(TArg2, int8x8_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_t, TRet, ret);
#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/Arm64::TransposeEven(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_arm64_transpose_even_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_35ED7(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int8x8_t, TRet, vzip1_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/Arm64::AbsoluteCompareGreaterThanOrEqualScalar(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_arm64_absolute_compare_greater_than_or_equal_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcages_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AbsoluteCompareGreaterThanScalar(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_arm64_absolute_compare_greater_than_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcagts_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AbsoluteCompareLessThanOrEqualScalar(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_arm64_absolute_compare_less_than_or_equal_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcales_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AbsoluteCompareLessThanScalar(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_arm64_absolute_compare_less_than_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcalts_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AbsoluteDifferenceScalar(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_arm64_absolute_difference_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vabds_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 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/Arm64::AddPairwiseScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_pairwise_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vpadds_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1)), 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/Arm64::CompareEqualScalar(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_arm64_compare_equal_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vceqs_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::CompareGreaterThanOrEqualScalar(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_arm64_compare_greater_than_or_equal_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcges_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::CompareGreaterThanScalar(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_arm64_compare_greater_than_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcgts_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::CompareLessThanOrEqualScalar(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_arm64_compare_less_than_or_equal_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vcles_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::CompareLessThanScalar(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_arm64_compare_less_than_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vclts_f32(vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0), vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ConvertToSingleLower(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_single_lower(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vcvt_f32_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::ConvertToSingleRoundToOddLower(System.Runtime.Intrinsics.Vector128`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_single_round_to_odd_lower(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vcvtx_f32_f64(
                INTRINSIC_CAST(TArg1, float64x2_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/Arm64::Divide(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_arm64_divide_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vdiv_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/Arm64::FusedMultiplyAddByScalar(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_arm64_fused_multiply_add_by_scalar_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vfma_n_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                vget_lane_f32(INTRINSIC_CAST(TArg3, float32x2_t, arg3), 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/Arm64::FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,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_arm64_fused_multiply_add_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfma_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfma_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfma_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfma_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_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_arm64_fused_multiply_add_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vfma_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplyAddBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,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_arm64_fused_multiply_add_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfma_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfma_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_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_arm64_fused_multiply_add_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vfma_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,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_arm64_fused_multiply_add_scalar_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmas_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmas_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 2:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmas_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 3:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmas_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_fused_multiply_add_scalar_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vfmas_laneq_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, float32x4_t, arg3),
            TArg4Value
            ), 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/Arm64::FusedMultiplyAddScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,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_arm64_fused_multiply_add_scalar_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmas_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmas_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                    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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_fused_multiply_add_scalar_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vfmas_lane_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, float32x2_t, arg3),
            TArg4Value
            ), 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/Arm64::FusedMultiplySubtractByScalar(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_arm64_fused_multiply_subtract_by_scalar_E4FE8(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vfms_n_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                vget_lane_f32(INTRINSIC_CAST(TArg3, float32x2_t, arg3), 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/Arm64::FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,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_arm64_fused_multiply_subtract_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfms_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfms_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfms_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfms_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x4_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_arm64_fused_multiply_subtract_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vfms_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplySubtractBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,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_arm64_fused_multiply_subtract_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfms_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vfms_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        INTRINSIC_CAST(TArg3, float32x2_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_arm64_fused_multiply_subtract_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vfms_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>,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_arm64_fused_multiply_subtract_scalar_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmss_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmss_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 2:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmss_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 3:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmss_laneq_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                    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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_fused_multiply_subtract_scalar_by_selected_scalar_61502(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vfmss_laneq_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, float32x4_t, arg3),
            TArg4Value
            ), 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/Arm64::FusedMultiplySubtractScalarBySelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>,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_arm64_fused_multiply_subtract_scalar_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg4)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmss_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(
                    float32x2_t, TRet, ret
                );
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vfmss_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
                    INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                    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, typename TArg4, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_fused_multiply_subtract_scalar_by_selected_scalar_01B1D(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vfmss_lane_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 0),
            INTRINSIC_CAST(TArg3, float32x2_t, arg3),
            TArg4Value
            ), 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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_10566(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_laneq_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_10566(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vcopy_laneq_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, float32x4_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_9C9E9(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            float32x2_t, TRet, vcopy_lane_f32(
                                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_9C9E9(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vcopy_lane_f32(
                INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                TArg2Value,
                INTRINSIC_CAST(TArg3, float32x2_t, arg3),
                TArg4Value
            )
        );
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vmaxvq_f32(INTRINSIC_CAST(TArg1, float32x4_t, arg1)), 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/Arm64::MaxNumberAcross(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_number_across(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vmaxnmvq_f32(INTRINSIC_CAST(TArg1, float32x4_t, arg1)), 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/Arm64::MaxNumberPairwise(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_arm64_max_number_pairwise_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vpmaxnm_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/Arm64::MaxNumberPairwiseScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_number_pairwise_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vpmaxnms_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1)), 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/Arm64::MaxPairwiseScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_pairwise_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vpmaxs_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1)), 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/Arm64::MaxScalar(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_arm64_max_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = vmax_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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_65DAE(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vminvq_f32(INTRINSIC_CAST(TArg1, float32x4_t, arg1)), 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/Arm64::MinNumberAcross(System.Runtime.Intrinsics.Vector128`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_number_across(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vminnmvq_f32(INTRINSIC_CAST(TArg1, float32x4_t, arg1)), 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/Arm64::MinNumberPairwise(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_arm64_min_number_pairwise_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vpminnm_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/Arm64::MinNumberPairwiseScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_number_pairwise_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vpminnms_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1)), 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/Arm64::MinPairwiseScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_pairwise_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vpmins_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1)), 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/Arm64::MinScalar(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_arm64_min_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = vmin_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/Arm64::MultiplyExtended(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_arm64_multiply_extended_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vmulx_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/Arm64::MultiplyExtendedBySelectedScalar(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_arm64_multiply_extended_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmulx_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmulx_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        1
                    )
                );
            }
            case 2:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmulx_laneq_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x4_t, arg2),
                        2
                    )
                );
            }
            case 3:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmulx_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_arm64_multiply_extended_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            float32x2_t, TRet, vmulx_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/Arm64::MultiplyExtendedBySelectedScalar(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_arm64_multiply_extended_by_selected_scalar_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmulx_lane_f32(
                        INTRINSIC_CAST(TArg1, float32x2_t, arg1),
                        INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                        0
                    )
                );
            }
            case 1:
            {
                return INTRINSIC_CAST(
                    float32x2_t, TRet, vmulx_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_arm64_multiply_extended_by_selected_scalar_97C06(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(
            float32x2_t, TRet, vmulx_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/Arm64::MultiplyExtendedScalar(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_arm64_multiply_extended_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vmulxs_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 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/Arm64::MultiplyExtendedScalarBySelectedScalar(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_arm64_multiply_extended_scalar_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmulxs_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(vmulxs_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(vmulxs_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(vmulxs_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_arm64_multiply_extended_scalar_by_selected_scalar_35407(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg3Value < 0 || TArg3Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        float32x2_t ret = {};
        ret = vset_lane_f32(vmulxs_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/Arm64::MultiplyExtendedScalarBySelectedScalar(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_arm64_multiply_extended_scalar_by_selected_scalar_97C06(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg3)
        {
            case 0:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmulxs_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_t, TRet, ret);
            }
            case 1:
            {
                float32x2_t ret = {};
                ret = vset_lane_f32(vmulxs_lane_f32(
                    vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
                    INTRINSIC_CAST(TArg2, float32x2_t, arg2),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(int8x8_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_arm64_multiply_extended_scalar_by_selected_scalar_97C06(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);

        float32x2_t ret = {};
        ret = vset_lane_f32(vmulxs_lane_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            INTRINSIC_CAST(TArg2, float32x2_t, arg2),
            TArg3Value
            ), ret, 0);
        return INTRINSIC_CAST(int8x8_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/Arm64::ReciprocalEstimateScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_estimate_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vrecpes_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/Arm64::ReciprocalExponentScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_exponent_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vrecpxs_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/Arm64::ReciprocalSquareRootEstimateScalar(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_reciprocal_square_root_estimate_scalar_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vrsqrtes_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/Arm64::ReciprocalSquareRootStepScalar(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_arm64_reciprocal_square_root_step_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vrsqrtss_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 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/Arm64::ReciprocalStepScalar(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_arm64_reciprocal_step_scalar_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2_t ret = {};
        ret = vset_lane_f32(vrecpss_f32(
            vget_lane_f32(INTRINSIC_CAST(TArg1, float32x2_t, arg1), 0),
            vget_lane_f32(INTRINSIC_CAST(TArg2, float32x2_t, arg2), 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/Arm64::Sqrt(System.Runtime.Intrinsics.Vector64`1<System.Single>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_sqrt_0373F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vsqrt_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/Arm64::TransposeEven(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_arm64_transpose_even_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_6609B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            float32x2_t, TRet, vzip1_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.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddAcross(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vaddvq_u16(INTRINSIC_CAST(TArg1, uint16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::AddAcross(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vaddv_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector128`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_FB916(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vaddlvq_u8(INTRINSIC_CAST(TArg1, uint8x16_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector64`1<System.Byte>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_76869(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vaddlv_u8(INTRINSIC_CAST(TArg1, uint8x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::AddSaturate(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_arm64_add_saturate_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vsqadd_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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vsqaddh_u16(vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0), vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqaddh_u16(vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0), vget_lane_u16(INTRINSIC_CAST(TArg2, uint16x4_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_scalar_D49A3(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqmovns_u32(vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_unsigned_scalar_5B9D4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqmovuns_s32(vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_C23FA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                3
                            )
                        );
                    }
                    case 4:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                4
                            )
                        );
                    }
                    case 5:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                5
                            )
                        );
                    }
                    case 6:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                6
                            )
                        );
                    }
                    case 7:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_laneq_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x8_t, arg3),
                                7
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_C23FA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 7)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcopy_laneq_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_CDA74(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 2:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                2,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 3:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint16x4_t, TRet, vcopy_lane_u16(
                                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                                3,
                                INTRINSIC_CAST(TArg3, uint16x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_CDA74(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint16x4_t, TRet, vcopy_lane_u16(
                INTRINSIC_CAST(TArg1, uint16x4_t, arg1),
                TArg2Value,
                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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vmaxvq_u16(INTRINSIC_CAST(TArg1, uint16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vmaxv_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vminvq_u16(INTRINSIC_CAST(TArg1, uint16x8_t, arg1)), 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.UInt16> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::MinAcross(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vminv_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftLeftLogicalSaturateScalar(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_arm64_shift_left_logical_saturate_scalar_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 1:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshlh_n_u16(
                    vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_scalar_4B15D(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint16x4_t ret = {};
        ret = vset_lane_u16(vqshlh_n_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftLeftLogicalSaturateUnsignedScalar(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_arm64_shift_left_logical_saturate_unsigned_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshluh_n_s16(
                    vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_unsigned_scalar_14E82(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 15)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqshluh_n_s16(
            vget_lane_s16(INTRINSIC_CAST(TArg1, int16x4_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftLogicalRoundedSaturateScalar(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_arm64_shift_logical_rounded_saturate_scalar_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqrshlh_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftLogicalSaturateScalar(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_arm64_shift_logical_saturate_scalar_91F68(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqshlh_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            vget_lane_s16(INTRINSIC_CAST(TArg2, int16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint8x8_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticNarrowingSaturateUnsignedScalar(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_arm64_shift_right_arithmetic_narrowing_saturate_unsigned_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 16:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_narrowing_saturate_unsigned_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqshruns_n_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(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_arm64_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 16:
            {
                int16x4_t ret = {};
                ret = vset_lane_s16(vqrshruns_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int16x4_t ret = {};
        ret = vset_lane_s16(vqrshruns_n_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftRightLogicalNarrowingSaturateScalar(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_arm64_shift_right_logical_narrowing_saturate_scalar_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 16:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_narrowing_saturate_scalar_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint16x4_t ret = {};
        ret = vset_lane_u16(vqshrns_n_u32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::ShiftRightLogicalRoundedNarrowingSaturateScalar(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_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 2:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 3:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 4:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 5:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 6:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 7:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 8:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 9:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 10:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 11:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 12:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 13:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 14:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 15:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_t, TRet, ret);
            }
            case 16:
            {
                uint16x4_t ret = {};
                ret = vset_lane_u16(vqrshrns_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint16x4_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 16)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint16x4_t ret = {};
        ret = vset_lane_u16(vqrshrns_n_u32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::SubtractSaturateScalar(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_arm64_subtract_saturate_scalar_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint16x4_t ret = {};
        ret = vset_lane_u16(vqsubh_u16(
            vget_lane_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1), 0),
            vget_lane_u16(INTRINSIC_CAST(TArg2, uint16x4_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint16x4_t, TRet, ret);
#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/Arm64::TransposeEven(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_arm64_transpose_even_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_750B5(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint16x4_t, TRet, vzip1_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/Arm64::AddAcross(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vaddvq_u32(INTRINSIC_CAST(TArg1, uint32x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector128`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_D0359(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vaddlvq_u16(INTRINSIC_CAST(TArg1, uint16x8_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint16x4_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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector64`1<System.UInt16>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_2015F(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vaddlv_u16(INTRINSIC_CAST(TArg1, uint16x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AddSaturate(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_arm64_add_saturate_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vsqadd_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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vsqadds_u32(vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0), vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqadds_u32(vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0), vget_lane_u32(INTRINSIC_CAST(TArg2, uint32x2_t, arg2), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ExtractNarrowingSaturateScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_scalar_F7831(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqmovnd_u64(vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ExtractNarrowingSaturateUnsignedScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_extract_narrowing_saturate_unsigned_scalar_890CB(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqmovund_s64(vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte,System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_68153(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                1
                            )
                        );
                    }
                    case 2:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                2
                            )
                        );
                    }
                    case 3:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_laneq_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x4_t, arg3),
                                3
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_68153(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 3)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcopy_laneq_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value,
                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/Arm64::InsertSelectedScalar(System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte,System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Byte)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
        ConstArgumentsExpected: [1, 3]
    */
    template<typename TRet, typename TArg1, typename TArg2, typename TArg3, typename TArg4>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_B77CA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                0,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            case 1:
            {
                switch (arg4)
                {
                    case 0:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                0
                            )
                        );
                    }
                    case 1:
                    {
                        return INTRINSIC_CAST(
                            uint32x2_t, TRet, vcopy_lane_u32(
                                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                                1,
                                INTRINSIC_CAST(TArg3, uint32x2_t, arg3),
                                1
                            )
                        );
                    }
                    default:
                        il2cpp_codegen_raise_argument_out_of_range_exception(NULL);
                        break;
                }
            }
            default:
                il2cpp_codegen_raise_argument_out_of_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 TArg2Value, int TArg4Value>
    inline TRet il2cpp_intrinsic_arm64_insert_selected_scalar_B77CA(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        if (TArg4Value < 0 || TArg4Value > 1)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        return INTRINSIC_CAST(
            uint32x2_t, TRet, vcopy_lane_u32(
                INTRINSIC_CAST(TArg1, uint32x2_t, arg1),
                TArg2Value,
                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/Arm64::MaxAcross(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_max_across_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vmaxvq_u32(INTRINSIC_CAST(TArg1, uint32x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::MinAcross(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_min_across_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vminvq_u32(INTRINSIC_CAST(TArg1, uint32x4_t, arg1)), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftLeftLogicalSaturateScalar(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_arm64_shift_left_logical_saturate_scalar_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 1:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 2:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 3:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 4:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 5:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 6:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 7:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 8:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 9:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 10:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 11:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 12:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 13:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 14:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 15:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 16:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 17:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 18:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 19:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 20:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 21:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 22:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 23:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 24:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 25:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 26:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 27:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 28:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 29:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 30:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 31:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshls_n_u32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_scalar_A595A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint32x2_t ret = {};
        ret = vset_lane_u32(vqshls_n_u32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftLeftLogicalSaturateUnsignedScalar(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_arm64_shift_left_logical_saturate_unsigned_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 0:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    0
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 8:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 9:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 10:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 11:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 12:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 13:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 14:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 15:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 16:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 17:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 18:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 19:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 20:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 21:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 22:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 23:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 24:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 25:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 26:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 27:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 28:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 29:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 30:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 31:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshlus_n_s32(
                    vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_left_logical_saturate_unsigned_scalar_1AC87(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 0 || TArg2Value > 31)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqshlus_n_s32(
            vget_lane_s32(INTRINSIC_CAST(TArg1, int32x2_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftLogicalRoundedSaturateScalar(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_arm64_shift_logical_rounded_saturate_scalar_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqrshls_u32(
            vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftLogicalSaturateScalar(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_arm64_shift_logical_saturate_scalar_0B453(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqshls_u32(
            vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
            vget_lane_s32(INTRINSIC_CAST(TArg2, int32x2_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftRightArithmeticNarrowingSaturateUnsignedScalar(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_arm64_shift_right_arithmetic_narrowing_saturate_unsigned_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 8:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 9:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 10:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 11:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 12:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 13:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 14:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 15:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 16:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 17:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 18:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 19:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 20:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 21:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 22:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 23:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 24:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 25:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 26:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 27:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 28:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 29:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 30:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 31:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 32:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_narrowing_saturate_unsigned_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqshrund_n_s64(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftRightArithmeticRoundedNarrowingSaturateUnsignedScalar(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_arm64_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 2:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 3:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 4:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 5:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 6:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 7:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 8:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 9:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 10:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 11:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 12:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 13:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 14:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 15:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 16:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 17:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 18:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 19:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 20:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 21:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 22:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 23:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 24:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 25:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 26:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 27:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 28:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 29:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 30:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 31:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 32:
            {
                int32x2_t ret = {};
                ret = vset_lane_s32(vqrshrund_n_s64(
                    vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_arithmetic_rounded_narrowing_saturate_unsigned_scalar_7F69A(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        int32x2_t ret = {};
        ret = vset_lane_s32(vqrshrund_n_s64(
            vget_lane_s64(INTRINSIC_CAST(TArg1, int64x1_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftRightLogicalNarrowingSaturateScalar(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_arm64_shift_right_logical_narrowing_saturate_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 2:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 3:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 4:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 5:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 6:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 7:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 8:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 9:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 10:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 11:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 12:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 13:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 14:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 15:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 16:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 17:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 18:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 19:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 20:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 21:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 22:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 23:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 24:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 25:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 26:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 27:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 28:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 29:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 30:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 31:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 32:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_narrowing_saturate_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint32x2_t ret = {};
        ret = vset_lane_u32(vqshrnd_n_u64(
            vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::ShiftRightLogicalRoundedNarrowingSaturateScalar(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_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        switch (arg2)
        {
            case 1:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    1
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 2:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    2
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 3:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    3
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 4:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    4
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 5:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    5
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 6:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    6
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 7:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    7
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 8:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    8
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 9:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    9
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 10:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    10
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 11:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    11
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 12:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    12
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 13:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    13
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 14:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    14
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 15:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    15
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 16:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    16
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 17:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    17
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 18:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    18
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 19:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    19
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 20:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    20
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 21:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    21
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 22:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    22
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 23:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    23
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 24:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    24
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 25:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    25
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 26:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    26
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 27:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    27
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 28:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    28
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 29:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    29
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 30:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    30
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 31:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    31
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_t, TRet, ret);
            }
            case 32:
            {
                uint32x2_t ret = {};
                ret = vset_lane_u32(vqrshrnd_n_u64(
                    vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
                    32
                    ), ret, 0);
                return INTRINSIC_CAST(uint32x2_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, int TArg2Value>
    inline TRet il2cpp_intrinsic_arm64_shift_right_logical_rounded_narrowing_saturate_scalar_2A716(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        if (TArg2Value < 1 || TArg2Value > 32)
            il2cpp_codegen_raise_argument_out_of_range_exception(NULL);

        uint32x2_t ret = {};
        ret = vset_lane_u32(vqrshrnd_n_u64(
            vget_lane_u64(INTRINSIC_CAST(TArg1, uint64x1_t, arg1), 0),
            TArg2Value
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::SubtractSaturateScalar(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_arm64_subtract_saturate_scalar_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2_t ret = {};
        ret = vset_lane_u32(vqsubs_u32(
            vget_lane_u32(INTRINSIC_CAST(TArg1, uint32x2_t, arg1), 0),
            vget_lane_u32(INTRINSIC_CAST(TArg2, uint32x2_t, arg2), 0)
            ), ret, 0);
        return INTRINSIC_CAST(uint32x2_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/Arm64::TransposeEven(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_arm64_transpose_even_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vtrn1_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/Arm64::TransposeOdd(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_arm64_transpose_odd_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vtrn2_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/Arm64::UnzipEven(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_arm64_unzip_even_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vuzp1_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/Arm64::UnzipOdd(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_arm64_unzip_odd_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vuzp2_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/Arm64::ZipHigh(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_arm64_zip_high_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vzip2_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/Arm64::ZipLow(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_arm64_zip_low_0920B(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint32x2_t, TRet, vzip1_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/Arm64::AbsScalar(System.Runtime.Intrinsics.Vector64`1<System.Int64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_abs_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            int64x1_t, TRet, vabs_s64(
                INTRINSIC_CAST(TArg1, int64x1_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/Arm64::AddAcrossWidening(System.Runtime.Intrinsics.Vector128`1<System.UInt32>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_across_widening_40038(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64_t, TRet, vaddlvq_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.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddPairwiseScalar(System.Runtime.Intrinsics.Vector128`1<System.UInt64>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_add_pairwise_scalar_754F5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64_t, TRet, vpaddd_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.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::AddSaturateScalar(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_arm64_add_saturate_scalar_87E02(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vsqadd_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/Arm64::CompareEqualScalar(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_arm64_compare_equal_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vceq_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/Arm64::CompareGreaterThanOrEqualScalar(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_arm64_compare_greater_than_or_equal_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcge_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/Arm64::CompareGreaterThanScalar(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_arm64_compare_greater_than_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcgt_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/Arm64::CompareLessThanOrEqualScalar(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_arm64_compare_less_than_or_equal_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcle_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/Arm64::CompareLessThanScalar(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_arm64_compare_less_than_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vclt_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/Arm64::CompareTestScalar(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_arm64_compare_test_scalar_DFC12(TArg1 arg1, TArg2 arg2)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vtst_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/Arm64::ConvertToUInt64RoundAwayFromZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_away_from_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcvta_u64_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.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToUInt64RoundToEvenScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_even_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcvtn_u64_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.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToUInt64RoundToNegativeInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_negative_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcvtm_u64_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.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToUInt64RoundToPositiveInfinityScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_positive_infinity_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcvtp_u64_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.UInt64> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::ConvertToUInt64RoundToZeroScalar(System.Runtime.Intrinsics.Vector64`1<System.Double>)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_convert_to_u_int64_round_to_zero_scalar(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        return INTRINSIC_CAST(
            uint64x1_t, TRet, vcvt_u64_f64(
                INTRINSIC_CAST(TArg1, float64x1_t, arg1)
            )
        );
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128(TArg1 arg1)
    {
    #if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
    #else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
    #endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Byte>,System.Runtime.Intrinsics.Vector128`1<System.Byte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Double>,System.Runtime.Intrinsics.Vector128`1<System.Double>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Int16>,System.Runtime.Intrinsics.Vector128`1<System.Int16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Int32>,System.Runtime.Intrinsics.Vector128`1<System.Int32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Int64>,System.Runtime.Intrinsics.Vector128`1<System.Int64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.SByte>,System.Runtime.Intrinsics.Vector128`1<System.SByte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.Single>,System.Runtime.Intrinsics.Vector128`1<System.Single>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.UInt16>,System.Runtime.Intrinsics.Vector128`1<System.UInt16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.UInt32>,System.Runtime.Intrinsics.Vector128`1<System.UInt32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector128`1<System.UInt64>,System.Runtime.Intrinsics.Vector128`1<System.UInt64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector128NonTemporal(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector128_non_temporal_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Byte>,System.Runtime.Intrinsics.Vector64`1<System.Byte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.Byte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_7E353(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Double>,System.Runtime.Intrinsics.Vector64`1<System.Double>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.Double*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_1DF21(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int16>,System.Runtime.Intrinsics.Vector64`1<System.Int16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.Int16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_2CA79(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairScalarVector64(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_scalar_vector64_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2x2_t ret;
        memset(&ret, 0, sizeof(int32x2x2_t));
        memcpy(&ret, arg1, sizeof(int32_t));
        memcpy(((int8_t*)&ret) + sizeof(int32x2_t), ((int8_t*)arg1) + sizeof(int32_t), sizeof(int32_t));
        return INTRINSIC_CAST(int32x2x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairScalarVector64NonTemporal(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_scalar_vector64_non_temporal_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        int32x2x2_t ret;
        memset(&ret, 0, sizeof(int32x2x2_t));
        memcpy(&ret, arg1, sizeof(int32_t));
        memcpy(((int8_t*)&ret) + sizeof(int32x2_t), ((int8_t*)arg1) + sizeof(int32_t), sizeof(int32_t));
        return INTRINSIC_CAST(int32x2x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int32>,System.Runtime.Intrinsics.Vector64`1<System.Int32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.Int32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_BD4B5(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Int64>,System.Runtime.Intrinsics.Vector64`1<System.Int64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.Int64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_5325A(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.SByte>,System.Runtime.Intrinsics.Vector64`1<System.SByte>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.SByte*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_5399E(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairScalarVector64(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_scalar_vector64_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2x2_t ret;
        memset(&ret, 0, sizeof(float32x2x2_t));
        memcpy(&ret, arg1, sizeof(float32_t));
        memcpy(((int8_t*)&ret) + sizeof(float32x2_t), ((int8_t*)arg1) + sizeof(float32_t), sizeof(float32_t));
        return INTRINSIC_CAST(float32x2x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairScalarVector64NonTemporal(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_scalar_vector64_non_temporal_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        float32x2x2_t ret;
        memset(&ret, 0, sizeof(float32x2x2_t));
        memcpy(&ret, arg1, sizeof(float32_t));
        memcpy(((int8_t*)&ret) + sizeof(float32x2_t), ((int8_t*)arg1) + sizeof(float32_t), sizeof(float32_t));
        return INTRINSIC_CAST(float32x2x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.Single>,System.Runtime.Intrinsics.Vector64`1<System.Single>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.Single*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_C80C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt16>,System.Runtime.Intrinsics.Vector64`1<System.UInt16>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.UInt16*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_FA329(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairScalarVector64(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_scalar_vector64_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2x2_t ret;
        memset(&ret, 0, sizeof(uint32x2x2_t));
        memcpy(&ret, arg1, sizeof(uint32_t));
        memcpy(((int8_t*)&ret) + sizeof(uint32x2_t), ((int8_t*)arg1) + sizeof(uint32_t), sizeof(uint32_t));
        return INTRINSIC_CAST(uint32x2x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairScalarVector64NonTemporal(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_scalar_vector64_non_temporal_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        uint32x2x2_t ret;
        memset(&ret, 0, sizeof(uint32x2x2_t));
        memcpy(&ret, arg1, sizeof(uint32_t));
        memcpy(((int8_t*)&ret) + sizeof(uint32x2_t), ((int8_t*)arg1) + sizeof(uint32_t), sizeof(uint32_t));
        return INTRINSIC_CAST(uint32x2x2_t, TRet, ret);
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt32>,System.Runtime.Intrinsics.Vector64`1<System.UInt32>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.UInt32*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_BE5D7(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.ValueTuple`2<System.Runtime.Intrinsics.Vector64`1<System.UInt64>,System.Runtime.Intrinsics.Vector64`1<System.UInt64>> System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::LoadPairVector64NonTemporal(System.UInt64*)
        AssemblyName: System.Private.CoreLib
        EmitTemplateParams: true
    */
    template<typename TRet, typename TArg1>
    inline TRet il2cpp_intrinsic_arm64_load_pair_vector64_non_temporal_F87C4(TArg1 arg1)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        TRet ret;
        memcpy(&ret, arg1, sizeof(TRet));
        return ret;
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
        return {};
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_25D86(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_B00EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_5B47A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_CF3F3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_C705E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_3F187(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_F187A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_42A13(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_3E22D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_BB2EA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_E0106(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_91DD2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_8F31F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_0D7BF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_57AF1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_BDE75(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_3C19E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_A201E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_C8E93(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePair(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_arm64_store_pair_AE812(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_25D86(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_B00EE(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_5B47A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_CF3F3(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_C705E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_3F187(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_F187A(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_42A13(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_3E22D(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_BB2EA(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_E0106(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_91DD2(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_8F31F(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_0D7BF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_57AF1(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_BDE75(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_3C19E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_A201E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_C8E93(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairNonTemporal(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_arm64_store_pair_non_temporal_AE812(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(arg2));
        memcpy(((uint8_t*)arg1) + sizeof(arg3), &arg3, sizeof(arg3));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairScalar(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_arm64_store_pair_scalar_42A13(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(int32_t));
        memcpy(((uint8_t*)arg1) + sizeof(int32_t), &arg3, sizeof(int32_t));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairScalar(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_arm64_store_pair_scalar_0D7BF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(float32_t));
        memcpy(((uint8_t*)arg1) + sizeof(float32_t), &arg3, sizeof(float32_t));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairScalar(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_arm64_store_pair_scalar_A201E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(uint32_t));
        memcpy(((uint8_t*)arg1) + sizeof(uint32_t), &arg3, sizeof(uint32_t));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairScalarNonTemporal(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_arm64_store_pair_scalar_non_temporal_42A13(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(int32_t));
        memcpy(((uint8_t*)arg1) + sizeof(int32_t), &arg3, sizeof(int32_t));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairScalarNonTemporal(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_arm64_store_pair_scalar_non_temporal_0D7BF(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(float32_t));
        memcpy(((uint8_t*)arg1) + sizeof(float32_t), &arg3, sizeof(float32_t));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }

    /* METHOD MAPPING
        Method: System.Void System.Runtime.Intrinsics.Arm.AdvSimd/Arm64::StorePairScalarNonTemporal(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_arm64_store_pair_scalar_non_temporal_A201E(TArg1 arg1, TArg2 arg2, TArg3 arg3)
    {
#if IL2CPP_ADVSIMD_ARM64_IS_SUPPORTED
        memcpy(arg1, &arg2, sizeof(uint32_t));
        memcpy(((uint8_t*)arg1) + sizeof(uint32_t), &arg3, sizeof(uint32_t));
#else
        il2cpp_codegen_raise_platform_not_supported_exception(NULL);
#endif
    }
} // namespace AdvSimd
} // namespace Arm
} // namespace Intrinsics
} // namespace Runtime
} // namespace System
} // namespace System_Private_CoreLib
} // namespace intrinsics
} // namespace il2cpp
