Die Algorithmen sind teils schon lustig.
für dein Beispiel t=1 kann er alles direkt in den Registern abarbeiten. Er muss dazu keine Konstante (die 1) aus dem Speicher laden. So ist es bei einigen Prozessoren eventuell schneller.

Ein echtes "Steuern" für den Code scheint aber nicht direkt möglich zu sein, bzw. nicht sicher nachvollziehbar.
Am schnellsten geht es in diesem Falle (unsigned multiplikation mit 3) immer noch mit
cnt = (cnt << 1) + cnt;

mit signed geht das natürlich dann nicht mehr.

Siro