Durvább dolgok vannak a mostani C fordítóban, mintsem hogy regiszterbe tegye amit lehet. Ezeket mind ki kell cseleznem, ha valami sebességtesztet írok.
Nézz rá erre: https://c.godbolt.org/z/vnYre8han
Én ránéztem, de én azt látom, hogy minden literált regiszterbe pakolt... (Az más kérdés, hogy előre kiszámolta, hogy mi is lesz a végső literál.)
Amit tud, ki fog optimalizálni. A másik példa arról szól, hogy az iskolában tanult osztás (de binárisan) még hardverre lerakva is lassú. Ahol tudja, nem sdiv-hez nyúl.
Ezt ha megszakadok se értem, hogy jött ide... Itt el lett sütve egy poén, hogy ha a fordító elég hülye, akkor ha nem literálban adod meg a számokat, hanem konstansként, akkor nem immediate load-ot használ, hanem bevágja egy címke mögé a data szegmensben és onnan olvasgatja be. Osztásról szó sem volt...