( uid_6201 | 2020. 10. 23., p – 17:11 )

A -O2 -nek és társainak mindenképpen van értelme. Például az alábbi kód C-be is szépen végigszimulálódik -O2 hatására és a futásidejű ciklus helyett csak az eredmény jön vissza.
Rust esetén szintén amit a fordító a -O hatására ki tud számolni, azt kiszámolja fordításkor. Az hogy használhat-e AVX-et azokhoz, amiket futásidőben kell hogy számoljon, az a -march=....

https://c.godbolt.org/z/aMzhbn
https://rust.godbolt.org/z/v6hdj1

Megjegyzem, a -march=... x86, x86_64 és AArch64 esetén megy frankón, ARM32 esetén úgy nézem a GCC-ben hatástalan a -march=..., helyette -mcpu=... -mfpu=neon-.. opciók kellenek.
A 486-ra azért limitálták hamar a Linux kernelt + glibc-t, mert a CMPXCHG atomi utasítás még nem volt a 386-ban. A szemaforozást ez a félbeszakíthatatlan utasítás nagyon egyszerűvé teszi. A pentiumokban szintén bejött néhány jóság, amire hatékony támaszkodni.