( uid_6201 | 2020. 10. 22., cs – 12:52 )

Jól megfigyelhető, hogy például az utolsó példánál az AVX regiszterbe szívná be/pumpálná ki az adatot, de ha általános kódot fordítasz, az bármely x86_64-en el kell hogy fusson, tehát a Core i3..i7-en kívül például egy j1900-as Celeron procin is, amiben nincs AVX. Ergó alapértelmezetten csak a közös utasításkészletből építhet bele.

A klasszikus x86-nál ez még szemléletesebb. A sima -O2 mindenféle architektúrabeli engedély nélkül tényleg csak azokat az utasításokat fogja beépíteni, ami i386 ... a mai prociig mindenhol megvan. Ez a korlát pedig meglátszik a futástempóban, főleg jelfeldolgozás esetén. Itt ha tempósabb kód kell, akkor muszáj a fordítónak az "optimalizálj!" kapcsolón túl megadni az engedélyt arra, hogy bizonyos architektúrát meghaladó vagy definiált utasításkészletet felhasználhasson.