Add Saddlv_V Inst. Improve Cnt_V, Dup_Gp & Ins_Gp Tests. Tuneup Cls_V & Clz_V Tests. (#720)

* Update PackageReferences.

* Improve Cnt_V Test. Tuneup Cls_V & Clz_V Tests.

Nit.

* Nit.

* Improve Dup_Gp & Ins_Gp Tests.

* Update for Saddlv_V Inst.

* Update for Saddlv_V Inst.

* Update for Saddlv_V Inst.
This commit is contained in:
LDj3SNuD 2019-07-08 16:55:37 +02:00 committed by gdkchan
parent 708620252e
commit e5b88de22a
7 changed files with 148 additions and 120 deletions

View file

@ -823,15 +823,29 @@ namespace ChocolArm64.Instructions
public static void EmitVectorAcrossVectorOpSx(ILEmitterCtx context, Action emit)
{
EmitVectorAcrossVectorOp(context, emit, true);
EmitVectorAcrossVectorOp(context, emit, signed: true, isLong: false);
}
public static void EmitVectorAcrossVectorOpZx(ILEmitterCtx context, Action emit)
{
EmitVectorAcrossVectorOp(context, emit, false);
EmitVectorAcrossVectorOp(context, emit, signed: false, isLong: false);
}
public static void EmitVectorAcrossVectorOp(ILEmitterCtx context, Action emit, bool signed)
public static void EmitVectorLongAcrossVectorOpSx(ILEmitterCtx context, Action emit)
{
EmitVectorAcrossVectorOp(context, emit, signed: true, isLong: true);
}
public static void EmitVectorLongAcrossVectorOpZx(ILEmitterCtx context, Action emit)
{
EmitVectorAcrossVectorOp(context, emit, signed: false, isLong: true);
}
public static void EmitVectorAcrossVectorOp(
ILEmitterCtx context,
Action emit,
bool signed,
bool isLong)
{
OpCodeSimd64 op = (OpCodeSimd64)context.CurrOp;
@ -847,7 +861,7 @@ namespace ChocolArm64.Instructions
emit();
}
EmitScalarSet(context, op.Rd, op.Size);
EmitScalarSet(context, op.Rd, isLong ? op.Size + 1 : op.Size);
}
public static void EmitVectorPairwiseOpF(ILEmitterCtx context, Action emit)