Update AInstEmitSimdArithmetic.cs
This commit is contained in:
parent
1a328a1159
commit
30820146b8
1 changed files with 80 additions and 0 deletions
|
@ -1052,6 +1052,46 @@ namespace ChocolArm64.Instruction
|
|||
EmitVectorWidenRnRmBinaryOpSx(Context, () => Context.Emit(OpCodes.Mul));
|
||||
}
|
||||
|
||||
public static void Sqabs_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingUnaryOpSx(Context, () => EmitAbs(Context));
|
||||
}
|
||||
|
||||
public static void Sqabs_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingUnaryOpSx(Context, () => EmitAbs(Context));
|
||||
}
|
||||
|
||||
public static void Sqadd_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpSx(Context, SaturatingFlags.Add);
|
||||
}
|
||||
|
||||
public static void Sqadd_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingBinaryOpSx(Context, SaturatingFlags.Add);
|
||||
}
|
||||
|
||||
public static void Sqneg_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingUnaryOpSx(Context, () => Context.Emit(OpCodes.Neg));
|
||||
}
|
||||
|
||||
public static void Sqneg_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingUnaryOpSx(Context, () => Context.Emit(OpCodes.Neg));
|
||||
}
|
||||
|
||||
public static void Sqsub_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpSx(Context, SaturatingFlags.Sub);
|
||||
}
|
||||
|
||||
public static void Sqsub_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingBinaryOpSx(Context, SaturatingFlags.Sub);
|
||||
}
|
||||
|
||||
public static void Sqxtn_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingNarrowOpSxSx(Context, () => { });
|
||||
|
@ -1099,6 +1139,16 @@ namespace ChocolArm64.Instruction
|
|||
EmitHighNarrow(Context, () => Context.Emit(OpCodes.Sub), Round: false);
|
||||
}
|
||||
|
||||
public static void Suqadd_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpSx(Context, SaturatingFlags.Accumulate);
|
||||
}
|
||||
|
||||
public static void Suqadd_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingBinaryOpSx(Context, SaturatingFlags.Accumulate);
|
||||
}
|
||||
|
||||
public static void Uaba_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorTernaryOpZx(Context, () =>
|
||||
|
@ -1221,6 +1271,26 @@ namespace ChocolArm64.Instruction
|
|||
EmitVectorWidenRnRmBinaryOpZx(Context, () => Context.Emit(OpCodes.Mul));
|
||||
}
|
||||
|
||||
public static void Uqadd_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpZx(Context, SaturatingFlags.Add);
|
||||
}
|
||||
|
||||
public static void Uqadd_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingBinaryOpZx(Context, SaturatingFlags.Add);
|
||||
}
|
||||
|
||||
public static void Uqsub_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpZx(Context, SaturatingFlags.Sub);
|
||||
}
|
||||
|
||||
public static void Uqsub_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingBinaryOpZx(Context, SaturatingFlags.Sub);
|
||||
}
|
||||
|
||||
public static void Uqxtn_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingNarrowOpZxZx(Context, () => { });
|
||||
|
@ -1231,6 +1301,16 @@ namespace ChocolArm64.Instruction
|
|||
EmitVectorSaturatingNarrowOpZxZx(Context, () => { });
|
||||
}
|
||||
|
||||
public static void Usqadd_S(AILEmitterCtx Context)
|
||||
{
|
||||
EmitScalarSaturatingBinaryOpZx(Context, SaturatingFlags.Accumulate);
|
||||
}
|
||||
|
||||
public static void Usqadd_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorSaturatingBinaryOpZx(Context, SaturatingFlags.Accumulate);
|
||||
}
|
||||
|
||||
public static void Usubw_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorWidenRmBinaryOpZx(Context, () => Context.Emit(OpCodes.Sub));
|
||||
|
|
Loading…
Add table
Reference in a new issue