Navíc z mé praxe - nikdy jsem na to nenarazil, je to vyumělkovaný příklad.
To je argument jak noha. Nikdy jsem na to nenarazil, takže je to vyumělkovaný příklad... Dá se to napsat i jinak, nikdy jsem na to nenarazil, protože mám málo zkušeností, nebo jsem to prostě ve své praxi nikdy nepotřeboval. Extrapolovat, že je to vyumělkovaný příklad, je tak trochu nezkušenost.
Abych tě trochu uvedl do praxe, aritmetický posun vpravo se hodí k rychlému dělení signed integerů. Instrukci integer dělení nechceš, je na všech současných CPU podstatně dražší. Operátor dělení v C taky nechceš, protože dává jiné výsledky než aritmetický shift a překladač to musí handlovat, i když dělení optimalizuje na aritmetický shift.
Pokud mám náhodou implementaci C, která místo aritmetického shiftu dělá logický (což norma povoluje), musím do assembleru, protože C implementace aritmetického posunu bude pomalejší než instrukce CPU (pokud překladač nepozná, že dělám aritmetický posun a nezoptimalizuje to, což ale není zaručeno).