インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

自動ベクトル化の無効化

コンパイラーが、SIMD (インテル® SSE/インテル® AVX) 命令を使用してアプリケーションのパフォーマンスを向上する可能性を見つける最適化を自動ベクトル化と呼びます。

多くの場合、この最適化はループ変換を行い、コードサイズを (一部のケースでは大幅に) 増加させます。

この最適化を無効にすることで、パフォーマンスは低下しますが、コードサイズを減らすことができます。

指定するオプション:

Linux* および macOS*: -no-vec
Windows*: /Qvec-

メリット

コンパイル時間も大幅に向上します。

デメリット

自動ベクトル化が有効な場合にベクトル化されるループのパフォーマンスは大幅に低下します。アプリケーションのパフォーマンスが重要な場合は、パフォーマンスに影響する部分を除く、その他の部分のベクトル化を無効にするため、このオプションを使用すべきです。

注:

コードの特性によっては、このオプションはバイナリーサイズを増加させることがあります。