dneska už málokdo. Ale třeba intrinsic v GCC, které vlastně přímo generují ty instrukce, mají podtržítka a to už jde číst docela dobře (až na ten prefix _mm):
__m128 shuf = _mm_shuffle_ps(r1, r1, _MM_SHUFFLE(2, 3, 0, 1));
__m128 sums = _mm_add_ps(r1, shuf);
shuf = _mm_movehl_ps(shuf, sums);
sums = _mm_add_ss(sums, shuf);
float result = _mm_cvtss_f32(sums);
pár z těch instrukcí skončilo i tady na top listu https://www.youtube.com/watch?v=Wz_xJPN7lAY
(vlastne skoro vsechny jsou nejaky SIMD :)
13. 3. 2025, 19:00 editováno autorem komentáře
Díky. Ta tabulka může být opravdu zajímavá a užitečná, takže díky za odkaz. Ale popravdě teď jen podpořila mé přesvědčení, že by se tím dalo strašit: "Ještě jeden bug dneska vyrobíš v tom Javascriptu a převelím tě do oddělení jazyka s těmito klíčovými slovy!" - a prásk nejnovějším výtiském této tabulky o stůl. Stačí fontem devítkou, už tak to bude štos :)
Nevěřím! :-)
Lépe řečeno chápu ten pocit, na osmibitovém atárku jsem ho měl taky :) Jenže to mělo pár desítek instrukcí a když mělo další procesory s vlastní instrukční sadou, tak to bylo jasně oddělené a tím přehlednější. Ale takhle spojené všechno do jedné tabulky musí podle mě fakt strašit - umět účelně využít všechny tyto instrukce nebo aspoň koncepty a ještě zoptimalizovat libovolný netriviální program, to podle mě nejde bez pomoci stroje. A možná ani s ním ne :)
Pochopitelnější mi to přijde právě v tomto vašem seriálu, protože jak je to v jednotlivých kapitolách, tak je jasné, co je k čemu a, když píšu program, tak která kapitola mě zajímá a kterými se teď nemusím zabývat - podle toho, co zrovna v této části programu budu řešit.
Vždyť ten AsmGrid tam má regex filtr - stačí tam napsat SSE2 a máte všechny SSE2 instrukce hezky pohromadě. Nebo ZMM a máte všechny AVX-512 instrukce co používají ZMM registry, atd... Pro mě zatím neocenitelný nástroj, protože píšu i raw asm a tady mám všechno pohromadě, a stačí přepnout tab a mám i latence, atd...
Jako jo, dovedl bych si představit i něco lepšího, ale dělat bych to nechtěl :)
Zkusím to doplnit. Nemyslel jsem to tak, že bych v každé situaci preferoval x86 assembler (ale vlastně ani žádný starší RISC) oproti vyšším jazykům (Intel to podle mě neudělal dobře od začátku, ale zrovna SIMD to vylepšil).
Ovšem kdybych stál před volbou: práce v asm vs. práce v JS, tak bych šel do asm. Zaprvé vím, jak to funguje a mám s tím (vlastně jen díky věku :-) nějaké zkušenosti a zadruhé se JS světu snažím vyhýbat, co to jde (asi úchylka, ale ve světě, kde se masivně mění technologie každou chvíli, je asm či C taková rozumná stálice).