To je asi tak 0.1% aplikaci, nejspis min. Pouzivat assembler jsem za poslednich deset let snad nevidel. Ma to smysl jen u nekterych uloh, treba in-memory cache (redis, memcache), kde se delaji jen 4 operace (takze kazda z nich ma velky vliv na vykon a odezvu), nebo treba IoT (ale tam to neni o tom, dostat super vykon z naslapanyho cpu, ale dostat aspon nejaky rozumny vykon z totalne anemickyho hardware).
"Někdy má program fakt víc různejch variant kódu pro různý CPU, např. x264 – MMX(2), SSE2, SSSE3,SSE4, AVX2 (pár funkcí je tam i pro XOP, ale je to minimum)." Tohle prave dela compiler. Delat to rucne ma smysl jen za velmi velmi specifickych situaci, ktere ale v kontextu Ryzenu vubec neplati. Plati to napr. v momente, kdy nejake CPU prinese zcela novou instrukcni sadu.