Ever since the original Pentium, both AMD and Intel have been releasing competing multimedia extensions to their architectures, mmx, 3DNOW!, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, XOP... So many, that I have barely kept track. I remember back in the days of the original pentium, there were games and programs that required a pentium MMX to run, but I haven't encountered anything similar since.
The matrix of which CPU supports which extension is extensive and complicated (doubly so, because some extensions like sse4 were only half implemented in some architectures...). This is also not to mention some other secondary instructions added on (and then subsequently removed) by either company over the years.
How widely used are these extensions anyway? It seems that for compiled software that is meant to be widely distributed, since support is so non-uniform, going beyond the standard op set (and maybe mmx) would be impractical. I know that you can specify the exact cpu when compiling software, but do optimizing compilers like gcc make extensive use of these extensions?