在進(jìn)行基準(zhǔn)測(cè)試時(shí),我測(cè)得的吞吐量比我計(jì)算的要低得多,我將其縮小到LZCNT指令(TZCNT也是如此),如以下基準(zhǔn)測(cè)試所示: xor ecx, ecx_benchloop: lzcnt eax, edx add ecx, 1 jnz _benchloop和: xor ecx, ecx_benchloop: xor eax, eax ; this shouldn't help, but it does lzcnt eax, edx add ecx, 1 jnz _benchloop第二個(gè)版本要快得多。不應(yīng)該這樣 沒有理由為什么LZCNT應(yīng)該對(duì)其輸出具有輸入依賴性。與BSR / BSF不同,xZCNT指令始終覆蓋其輸出。我正在4770K上運(yùn)行它,因此LZCNT和TZCNT不會(huì)作為BSR / BSF執(zhí)行。這里發(fā)生了什么?
3 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒什么可不幸的。您似乎已經(jīng)排除了對(duì)齊方式,而我們只是排除了部分標(biāo)志的依賴性?!爱?dāng)您消除了不可能的事物時(shí),無論多么不可能,仍然是必須存在的事實(shí)?!蔽覀兛赡苓€沒有消除所有其他事物,但是看起來越來越像在您的處理器上實(shí)現(xiàn)的xZCNT依賴于其輸出寄存器重命名。
- 3 回答
- 0 關(guān)注
- 667 瀏覽
添加回答
舉報(bào)
0/150
提交
取消