Update InstEmitSimdArithmetic.cs
This commit is contained in:
parent
c064108e02
commit
84bdfe6cfc
1 changed files with 46 additions and 0 deletions
|
@ -2268,6 +2268,15 @@ namespace ChocolArm64.Instructions
|
|||
}
|
||||
}
|
||||
|
||||
public static void Smlal_Ve(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenTernaryOpByElemSx(context, () =>
|
||||
{
|
||||
context.Emit(OpCodes.Mul);
|
||||
context.Emit(OpCodes.Add);
|
||||
});
|
||||
}
|
||||
|
||||
public static void Smlsl_V(ILEmitterCtx context)
|
||||
{
|
||||
OpCodeSimdReg64 op = (OpCodeSimdReg64)context.CurrOp;
|
||||
|
@ -2319,11 +2328,25 @@ namespace ChocolArm64.Instructions
|
|||
}
|
||||
}
|
||||
|
||||
public static void Smlsl_Ve(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenTernaryOpByElemSx(context, () =>
|
||||
{
|
||||
context.Emit(OpCodes.Mul);
|
||||
context.Emit(OpCodes.Sub);
|
||||
});
|
||||
}
|
||||
|
||||
public static void Smull_V(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenRnRmBinaryOpSx(context, () => context.Emit(OpCodes.Mul));
|
||||
}
|
||||
|
||||
public static void Smull_Ve(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenBinaryOpByElemSx(context, () => context.Emit(OpCodes.Mul));
|
||||
}
|
||||
|
||||
public static void Sqabs_S(ILEmitterCtx context)
|
||||
{
|
||||
EmitScalarSaturatingUnaryOpSx(context, () => EmitAbs(context));
|
||||
|
@ -2929,6 +2952,15 @@ namespace ChocolArm64.Instructions
|
|||
}
|
||||
}
|
||||
|
||||
public static void Umlal_Ve(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenTernaryOpByElemZx(context, () =>
|
||||
{
|
||||
context.Emit(OpCodes.Mul);
|
||||
context.Emit(OpCodes.Add);
|
||||
});
|
||||
}
|
||||
|
||||
public static void Umlsl_V(ILEmitterCtx context)
|
||||
{
|
||||
OpCodeSimdReg64 op = (OpCodeSimdReg64)context.CurrOp;
|
||||
|
@ -2980,11 +3012,25 @@ namespace ChocolArm64.Instructions
|
|||
}
|
||||
}
|
||||
|
||||
public static void Umlsl_Ve(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenTernaryOpByElemZx(context, () =>
|
||||
{
|
||||
context.Emit(OpCodes.Mul);
|
||||
context.Emit(OpCodes.Sub);
|
||||
});
|
||||
}
|
||||
|
||||
public static void Umull_V(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenRnRmBinaryOpZx(context, () => context.Emit(OpCodes.Mul));
|
||||
}
|
||||
|
||||
public static void Umull_Ve(ILEmitterCtx context)
|
||||
{
|
||||
EmitVectorWidenBinaryOpByElemZx(context, () => context.Emit(OpCodes.Mul));
|
||||
}
|
||||
|
||||
public static void Uqadd_S(ILEmitterCtx context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpZx(context, SaturatingFlags.Add);
|
||||
|
|
Loading…
Add table
Reference in a new issue