Remove some calls generated on the CPU for inexistent intrinsic methods

This commit is contained in:
gdkchan 2018-05-23 00:27:48 -03:00
parent 173c3e616d
commit e54a0ff9c6

View file

@ -14,7 +14,7 @@ namespace ChocolArm64.Instruction
{
public static void Cmeq_V(AILEmitterCtx Context)
{
if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg)
if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg Op && Op.Size < 3)
{
EmitSse2Call(Context, nameof(Sse2.CompareEqual));
}
@ -26,19 +26,12 @@ namespace ChocolArm64.Instruction
public static void Cmge_V(AILEmitterCtx Context)
{
if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg)
{
EmitSse2Call(Context, nameof(Sse2.CompareGreaterThanOrEqual));
}
else
{
EmitVectorCmp(Context, OpCodes.Bge_S);
}
EmitVectorCmp(Context, OpCodes.Bge_S);
}
public static void Cmgt_V(AILEmitterCtx Context)
{
if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg)
if (AOptimizations.UseSse2 && Context.CurrOp is AOpCodeSimdReg Op && Op.Size < 3)
{
EmitSse2Call(Context, nameof(Sse2.CompareGreaterThan));
}