I think intel released a compiler that would specifically use SIMD, and I always believed the commercial compilers also used them when asked as part of the optimisation. So whenever you want multiple instruction processing you need to declare variables as arrays of multiples of four and the compiler will optimize as parallel instructions...See this: http://ds9a.nl/gcc-simd/fp-simd-builtins.html
these pseudo-codelets also exist for MSVC and they are a real pain... you wouldn't want to use the code once you disassembled it.
all the best, Thomas