diff --git a/src/mono/mono/mini/interp/simd-methods.def b/src/mono/mono/mini/interp/simd-methods.def index 36d993fdec5678..5cb79a74ca3a5a 100644 --- a/src/mono/mono/mini/interp/simd-methods.def +++ b/src/mono/mono/mini/interp/simd-methods.def @@ -67,6 +67,7 @@ SIMD_METHOD(Negate) SIMD_METHOD(Max) SIMD_METHOD(Min) SIMD_METHOD(OnesComplement) +SIMD_METHOD(Round) SIMD_METHOD(ShiftLeft) SIMD_METHOD(ShiftRightArithmetic) SIMD_METHOD(ShiftRightLogical) diff --git a/src/mono/mono/mini/interp/transform-simd.c b/src/mono/mono/mini/interp/transform-simd.c index fe98b1c05a0cba..c4a47db328cf9a 100644 --- a/src/mono/mono/mini/interp/transform-simd.c +++ b/src/mono/mono/mini/interp/transform-simd.c @@ -166,6 +166,7 @@ static guint16 packedsimd_alias_methods [] = { SN_Multiply, SN_Negate, SN_OnesComplement, + SN_Round, SN_ShiftLeft, SN_ShiftRightArithmetic, SN_ShiftRightLogical, @@ -1167,6 +1168,11 @@ emit_sri_packedsimd (TransformData *td, MonoMethod *cmethod, MonoMethodSignature case SN_LoadUnsafe: cmethod_name = "LoadVector128"; break; + case SN_Round: + if (csignature->param_count != 1) + return FALSE; + cmethod_name = "RoundToNearest"; + break; case SN_WidenLower: cmethod_name = is_unsigned ? "ZeroExtendWideningLower" : "SignExtendWideningLower"; break;