Skip to content

Commit c973431

Browse files
committedMar 5, 2018
Updating the CompareEqual{Ordered|Unordered}Scalar intrinsics to have slightly better codegen
1 parent 4806e76 commit c973431

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed
 

‎src/jit/hwintrinsiccodegenxarch.cpp

+4-8
Original file line numberDiff line numberDiff line change
@@ -625,8 +625,7 @@ void CodeGen::genSSEIntrinsic(GenTreeHWIntrinsic* node)
625625
emit->emitIns_R(INS_setpo, EA_1BYTE, targetReg);
626626
emit->emitIns_R(INS_sete, EA_1BYTE, tmpReg);
627627
emit->emitIns_R_R(INS_and, EA_1BYTE, tmpReg, targetReg);
628-
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
629-
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
628+
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
630629
break;
631630
}
632631

@@ -697,8 +696,7 @@ void CodeGen::genSSEIntrinsic(GenTreeHWIntrinsic* node)
697696
emit->emitIns_R(INS_setpe, EA_1BYTE, targetReg);
698697
emit->emitIns_R(INS_setne, EA_1BYTE, tmpReg);
699698
emit->emitIns_R_R(INS_or, EA_1BYTE, tmpReg, targetReg);
700-
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
701-
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
699+
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
702700
break;
703701
}
704702

@@ -859,8 +857,7 @@ void CodeGen::genSSE2Intrinsic(GenTreeHWIntrinsic* node)
859857
emit->emitIns_R(INS_setpo, EA_1BYTE, targetReg);
860858
emit->emitIns_R(INS_sete, EA_1BYTE, tmpReg);
861859
emit->emitIns_R_R(INS_and, EA_1BYTE, tmpReg, targetReg);
862-
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
863-
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
860+
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
864861
break;
865862
}
866863

@@ -931,8 +928,7 @@ void CodeGen::genSSE2Intrinsic(GenTreeHWIntrinsic* node)
931928
emit->emitIns_R(INS_setpe, EA_1BYTE, targetReg);
932929
emit->emitIns_R(INS_setne, EA_1BYTE, tmpReg);
933930
emit->emitIns_R_R(INS_or, EA_1BYTE, tmpReg, targetReg);
934-
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
935-
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
931+
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
936932
break;
937933
}
938934

0 commit comments

Comments
 (0)
Please sign in to comment.