O to, že v ASM můžeš plně vytížit jednotlivé exekuční jednotky
To imho zvladne lepsie kompilator ako clovek. Vazne - kto dokaze pri pisani ASM uvazovat nad exekucnymi jednotkami, prekladanim kodu, vhodnym vyuzitim registrov, roznymi rychlostami instrukcii atd? A to nehovorim o takom prekladani instrukcii, ze si kompilator "uvedomi", ze je nejaka cast procesoru obsadena a preto pouzije pomalsiu instrukciu, ktora sa ale vykonava inde a tak to bude celkovo rychlejsie.
Na pisanie takehoto kodu podla mna mozog cloveka (ako som ja) nie je dost dobre stavany a na citanie takto napisaneho kodu uz vobec nie.
a také můžeš používat plné výhody SSEx, AVX. Například pouhé přepsání některých algoritmů z C do SSE zvedne výkon 4x, to ale zatím kompilátory moc neumějí a proto se to dělá ručně, například v audio video kodecích, pomocí compiler intrinsics.
Ja si myslim, ze "nejlepsi veledilo v C" by malo SSE pouzivat vsade, kde je to treba. Intrinsics nepovazujem za nieco mimo C - ostatne, je to z pohladu programatora skoro uplne "normalna funkcia", aj ked nie standardizovana a nepreklada sa ako volanie funkcie.
Jednoduchu vektorizaciu zvladalo aj obycajne GCC uz pred mozno 3 rokmi, ked som si nahodou cital instrukcie jedneho mojho programu a hladal som miesta, kde by to islo vylepsit. Tam, kde to nezvladne GCC same prichadzaju zase intrin...
To už jsme ale daleko od původní debaty.
Jasne - akurat ma zaujimalo, ci je to s C az tak zle - a nastastie to tak nevyzera.