From 69c93450d0b941ee7085ace4da71eb87f2698bdd Mon Sep 17 00:00:00 2001 From: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> Date: Mon, 1 Jul 2019 21:22:19 +0200 Subject: [PATCH] Update for Saddlv_V Inst. --- .../Instructions/InstEmitSimdArithmetic.cs | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/ChocolArm64/Instructions/InstEmitSimdArithmetic.cs b/ChocolArm64/Instructions/InstEmitSimdArithmetic.cs index 8cf5c2c5d1..fa9666eb5f 100644 --- a/ChocolArm64/Instructions/InstEmitSimdArithmetic.cs +++ b/ChocolArm64/Instructions/InstEmitSimdArithmetic.cs @@ -2206,6 +2206,11 @@ namespace ChocolArm64.Instructions EmitAddLongPairwise(context, signed: true, accumulate: false); } + public static void Saddlv_V(ILEmitterCtx context) + { + EmitVectorLongAcrossVectorOpSx(context, () => context.Emit(OpCodes.Add)); + } + public static void Saddw_V(ILEmitterCtx context) { if (Optimizations.UseSse41) @@ -3041,21 +3046,7 @@ namespace ChocolArm64.Instructions public static void Uaddlv_V(ILEmitterCtx context) { - OpCodeSimd64 op = (OpCodeSimd64)context.CurrOp; - - int bytes = op.GetBitsCount() >> 3; - int elems = bytes >> op.Size; - - EmitVectorExtractZx(context, op.Rn, 0, op.Size); - - for (int index = 1; index < elems; index++) - { - EmitVectorExtractZx(context, op.Rn, index, op.Size); - - context.Emit(OpCodes.Add); - } - - EmitScalarSet(context, op.Rd, op.Size + 1); + EmitVectorLongAcrossVectorOpZx(context, () => context.Emit(OpCodes.Add)); } public static void Uaddw_V(ILEmitterCtx context)