Different mmx sse and avx versions complementary or supersets of each other?
https://news.ycombinator.com/item?id=9922099I'm thinking I should familiarize myself with x86 SIMD extensions. But before I even began I ran into trouble. I can't find a good overview on which of them are still relevant.
The x86 architecture has accumulated a lot of math/multimedia extensions over decades:
MMX
3DNow!
SSE
SSE2
SSE3
SSSE3
SSE4
AVX
AVX2
AVX512
Did I forget something?
Are the newer ones supersets of the older ones and vice versa? Or are they complementary?
Are some of them deprecated? Which of these are still relevant? I've heard references to "legacy SSE".
Are some of them mutually exclusive? I.e. do they share the same hardware parts?
Which should I use together to maximize hardware utilization on modern Intel / AMD CPUs? For sake of argument, let's assume I can find appropriate uses for the instructions... heating my house with the CPU if nothing else.