Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Commit

Permalink
Updating the CompareEqual{Ordered|Unordered}Scalar intrinsics to have…
Browse files Browse the repository at this point in the history
… slightly better codegen
  • Loading branch information
tannergooding committed Mar 5, 2018
1 parent 4806e76 commit c973431
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions src/jit/hwintrinsiccodegenxarch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -625,8 +625,7 @@ void CodeGen::genSSEIntrinsic(GenTreeHWIntrinsic* node)
emit->emitIns_R(INS_setpo, EA_1BYTE, targetReg);
emit->emitIns_R(INS_sete, EA_1BYTE, tmpReg);
emit->emitIns_R_R(INS_and, EA_1BYTE, tmpReg, targetReg);
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
break;
}

Expand Down Expand Up @@ -697,8 +696,7 @@ void CodeGen::genSSEIntrinsic(GenTreeHWIntrinsic* node)
emit->emitIns_R(INS_setpe, EA_1BYTE, targetReg);
emit->emitIns_R(INS_setne, EA_1BYTE, tmpReg);
emit->emitIns_R_R(INS_or, EA_1BYTE, tmpReg, targetReg);
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
break;
}

Expand Down Expand Up @@ -859,8 +857,7 @@ void CodeGen::genSSE2Intrinsic(GenTreeHWIntrinsic* node)
emit->emitIns_R(INS_setpo, EA_1BYTE, targetReg);
emit->emitIns_R(INS_sete, EA_1BYTE, tmpReg);
emit->emitIns_R_R(INS_and, EA_1BYTE, tmpReg, targetReg);
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
break;
}

Expand Down Expand Up @@ -931,8 +928,7 @@ void CodeGen::genSSE2Intrinsic(GenTreeHWIntrinsic* node)
emit->emitIns_R(INS_setpe, EA_1BYTE, targetReg);
emit->emitIns_R(INS_setne, EA_1BYTE, tmpReg);
emit->emitIns_R_R(INS_or, EA_1BYTE, tmpReg, targetReg);
emit->emitIns_R(INS_setne, EA_1BYTE, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, targetReg);
emit->emitIns_R_R(INS_movzx, EA_1BYTE, targetReg, tmpReg);
break;
}

Expand Down

0 comments on commit c973431

Please sign in to comment.