桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

KB974116

d:id:youandi:20060723#p3, d:id:youandi:20080812#p1
別にSSE4.1なコードなんて書けないし書く事もないんですが。

[FIX] Visual C++ 2008 SP1 を使用して最適化オプション/O2 または最適化オプション/Ox が有効になっている場合は、SSE4.1 コードをコンパイルすると、問題が発生します。
http://support.microsoft.com/kb/974116

今更ですが、VC++9.0にはSSE4.1のヘッダも提供されているんだなと、そこが気になりました。

#include <wmmintrin.h>  // for AES-NI(Advanced Encryption Standard - New Instructions)
#include <nmmintrin.h>  // for SSE4.2
#include <smmintrin.h>  // for SSE4.1
#include <tmmintrin.h>  // for SSE4
#include <pmmintrin.h>	// for SSE3
#include <emmintrin.h>	// for SSE2
#include <xmmintrin.h>	// for SSE
#include <mmintrin.h>	// for MMX
#include <mm3dnow.h>    // for 3DNow!
#ifdef _MSC_VER
#include <intrin.h>	// for SSE4A, その他組み込み関数(VC++のみ)
#endif // _MSC_VER

どうやらSP1で追加された模様。

Visual C++言語リファレンス > コンパイラ組込関数
http://msdn.microsoft.com/ja-jp/library/26td21ds.aspx