この複素数乗算の例では、ストリーミング SIMD 拡張命令 3 をサポートするインテル® Pentium® 4 プロセッサを対象としたコンパイルでパフォーマンスを向上するために、いくつかの SSE3 命令が使用されます。
float _Complex a[100]; float _Complex b[100]; void doit(void) { int i; for (i=0;i<100;i++) { a[i] *= b[i]; } } |
SSE3 命令 | 同等の組込み関数 | 説明 |
---|---|---|
addsubps | __m128 _mm_addsub_ps(__m128 a, __m128 b) | パックド単精度浮動小数点積和/積差 |
movshdup | __m128 _mm_movehdup_ps(__m128 a) | 上位パックド単精度浮動小数点の移動および複製 |
movsldup | __m128 _mm_moveldup_ps(__m128 a) | 下位パックド単精度浮動小数点の移動および複製 |