diff --git a/src/coreclr/src/jit/codegenxarch.cpp b/src/coreclr/src/jit/codegenxarch.cpp index 66bc4fe486a3b5..e9e37548eb6c16 100644 --- a/src/coreclr/src/jit/codegenxarch.cpp +++ b/src/coreclr/src/jit/codegenxarch.cpp @@ -3022,11 +3022,11 @@ void CodeGen::genCodeForInitBlkUnroll(GenTreeBlk* node) { if (dstLclNum != BAD_VAR_NUM) { - emit->emitIns_S_R(INS_movdqu, EA_ATTR(regSize), srcXmmReg, dstLclNum, dstOffset); + emit->emitIns_S_R(INS_movups, EA_ATTR(regSize), srcXmmReg, dstLclNum, dstOffset); } else { - emit->emitIns_ARX_R(INS_movdqu, EA_ATTR(regSize), srcXmmReg, dstAddrBaseReg, dstAddrIndexReg, + emit->emitIns_ARX_R(INS_movups, EA_ATTR(regSize), srcXmmReg, dstAddrBaseReg, dstAddrIndexReg, dstAddrIndexScale, dstOffset); } } @@ -3221,21 +3221,21 @@ void CodeGen::genCodeForCpBlkUnroll(GenTreeBlk* node) { if (srcLclNum != BAD_VAR_NUM) { - emit->emitIns_R_S(INS_movdqu, EA_ATTR(regSize), tempReg, srcLclNum, srcOffset); + emit->emitIns_R_S(INS_movups, EA_ATTR(regSize), tempReg, srcLclNum, srcOffset); } else { - emit->emitIns_R_ARX(INS_movdqu, EA_ATTR(regSize), tempReg, srcAddrBaseReg, srcAddrIndexReg, + emit->emitIns_R_ARX(INS_movups, EA_ATTR(regSize), tempReg, srcAddrBaseReg, srcAddrIndexReg, srcAddrIndexScale, srcOffset); } if (dstLclNum != BAD_VAR_NUM) { - emit->emitIns_S_R(INS_movdqu, EA_ATTR(regSize), tempReg, dstLclNum, dstOffset); + emit->emitIns_S_R(INS_movups, EA_ATTR(regSize), tempReg, dstLclNum, dstOffset); } else { - emit->emitIns_ARX_R(INS_movdqu, EA_ATTR(regSize), tempReg, dstAddrBaseReg, dstAddrIndexReg, + emit->emitIns_ARX_R(INS_movups, EA_ATTR(regSize), tempReg, dstAddrBaseReg, dstAddrIndexReg, dstAddrIndexScale, dstOffset); } } diff --git a/src/coreclr/src/jit/emitxarch.cpp b/src/coreclr/src/jit/emitxarch.cpp index 90b254f00d28fc..816fb626946031 100644 --- a/src/coreclr/src/jit/emitxarch.cpp +++ b/src/coreclr/src/jit/emitxarch.cpp @@ -14353,6 +14353,10 @@ emitter::insExecutionCharacteristics emitter::getInsExecutionCharacteristics(ins case INS_movdqa: case INS_movdqu: + case INS_movaps: + case INS_movups: + case INS_movapd: + case INS_movupd: if (memAccessKind == PERFSCORE_MEMORY_NONE) { // ins reg, reg @@ -14537,28 +14541,6 @@ emitter::insExecutionCharacteristics emitter::getInsExecutionCharacteristics(ins result.insLatency += PERFSCORE_LATENCY_5C; break; - case INS_movaps: - case INS_movups: - case INS_movapd: - case INS_movupd: - if (memAccessKind == PERFSCORE_MEMORY_NONE) - { - result.insThroughput = PERFSCORE_THROUGHPUT_4X; - result.insLatency = PERFSCORE_LATENCY_1C; - } - else if (memAccessKind == PERFSCORE_MEMORY_READ) - { - result.insThroughput = PERFSCORE_THROUGHPUT_2X; - result.insLatency += PERFSCORE_LATENCY_2C; - } - else - { - assert(memAccessKind == PERFSCORE_MEMORY_WRITE); - result.insThroughput = PERFSCORE_THROUGHPUT_1C; - result.insLatency += PERFSCORE_LATENCY_3C; - } - break; - case INS_paddb: case INS_psubb: case INS_paddw: