Optimalizace pomocí SSEx se vyplatí hlavně u kodeků. Tam se typicky používají různé code paths pro různé kombinace rozšíření instrukční sady a případně velikostí cache CPU. Jinými slovy pokud chcete optimalizovat, stejně se nevyhnete různým code paths.
MSVC sice podporuje SSEx, ale v praxi vám to moc nepomůže. Zrychlení kódu prostou rekompilací je minimální. Co potřebujete je *ručně* použít SSEx/AVXx instrukce a poladit velikosti bufferů podle velikosti cache. SSEx/AVXx instrukce můžete použít pomocí inline assembleru. Lepší je ale použít Compiler Intrinsics, protože jim překladač "rozumí" a ví co dělají, takže může víc optimalizovat.
http://msdn.microsoft.com/en-us/library/26td21ds(v=vs.100).aspx
Navíc směšujete věci, které nemají souvislost. Máme 32-bitové CPU bez SSE2, 32-bitové s SSE2, 32-bitové s SSE3, 64-bitové s SSE2, a pak řadu 64-bitových s SSE3-4.2, AVX a dalšími extensions (plus existuje AMD, které má podporu extensions odlišnou). S vaším přístupem byste například odřízl podporu SSE2 a SSE3 na 32-bitových CPU.