Kösz a tippet! Már megérte a topic. Tényleg rotálásra fordít.
unsigned int rotaljunk(unsigned int d) {
return (d>>31 | d<<1);
}
És a gcc-7.3 kimenete (-O2):
rotaljunk:
movl %edi, %eax
roll %eax
ret
Tök jó az optimalizálása, pont ezt várom el tőle a lassú, szolgai végrehajtás helyett.
Természetesen eredményhelyesen, ahogy a proci out-of-orderes feldolgozójától is a gyors, de eredményhelyes végrehajtást várom el.