( uid_6201 | 2018. 07. 16., h – 13:49 )

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.