|
|
|
|
|
by pjc50
1926 days ago
|
|
Failing to post disassembly for a micro benchmark is annoying. It is of course speculating all the way through the loop; a short backwards conditional branch will be speculated as "taken" by even very simple predictors. Op fusion is very likely, as is register renaming: I suspect that "mul" always computes both products, and the upper one is left in a register which isn't visible to the programmer until they use "mulh" with the same argument. At which point it's just renamed into the target register. |
|