Na SIMD je nejlepší použít nějakou knihovnu nebo intrinsics. Toto je cesta do pekla, protože mít jen základní aritmetiku je skoro na nic. Díky tomu, že člověk pracuje s vektorem je potřeba mnohem víc, různé konverze, shuffling, packing/unpacking, maskování, atd... A každá architektura to má trochu jiné (třeba shuffling na ARMu je totální noční můra).
Jinak jo, super článek
Těch knihoven jsou dnes už desítky. Mnoho z nich má i různé další funkce jako trigo, exp, atd... - a toto je zrovna něco co trvá hodně dlouho napsat a odladit.
Na druhou stranu intrinsics jsou někdy jediný způsob jak použít něco co není zrovna univerzální mezi různýma architekturama a nemá to wrappery v těch SIMD knihovnách. Třeba x86 architektura má hodně různých zajímavých instrukcí, které nemají ekvivalent na AArch64 a jiných architekturách.