aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64
diff options
context:
space:
mode:
Diffstat (limited to 'ChocolArm64')
-rw-r--r--ChocolArm64/Instruction/AInstEmitSimdCmp.cs13
1 files changed, 3 insertions, 10 deletions
diff --git a/ChocolArm64/Instruction/AInstEmitSimdCmp.cs b/ChocolArm64/Instruction/AInstEmitSimdCmp.cs
index 583ad702..8a8376b2 100644
--- a/ChocolArm64/Instruction/AInstEmitSimdCmp.cs
+++ b/ChocolArm64/Instruction/AInstEmitSimdCmp.cs
@@ -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));
}