インテル® C++ コンパイラーの新しいベクトル化診断

同カテゴリーの次の記事

インテル® コンパイラーを使用したインテル® Xeon® プロセッサー向けのアプリケーションの最適化

この記事は、インテル® デベロッパー・ゾーンに掲載されている「New Vectorization Diagnostics starting from Intel(R) C++ Compiler 15.0」(https://software.intel.com/en-us/articles/vectorization-diagnostics-for-intelr-c-compiler-150-and-above) の日本語参考訳です。


インテル® Fortran コンパイラーのベクトル化診断についてはこちらを参照してください。

診断番号 診断の説明
診断 15304 ループはベクトル化されませんでした: マルチバージョンのベクトル化できないループ・インスタンスです。
診断 15541 外部ループは自動ベクトル化されませんでした: SIMD ディレクティブの使用を検討してください。
診断15319 ループはベクトル化されませんでした: novector ディレクティブが使用されています。
診断15331 xxxx はベクトル化されませんでした: コマンドラインまたはディレクティブにより暗黙に示された precise FP モデルがベクトル化を妨げています。fast FP モデルの使用を検討してください。
診断15335 xxxx はベクトル化されませんでした: ベクトル化は可能ですが非効率です。オーバーライドするには vector always ディレクティブまたは -vec-threshold0 を使用してください。
診断15344 ループはベクトル化されませんでした: ベクトル依存関係がベクトル化を妨げています。
診断15378 xxxx はベクトル化されませんでした: -ffreestanding オプションが整数除算/剰余のベクトル化を妨げています。
診断15414 ループはベクトル化されませんでした: 最適化後に xxxx 本体が空になったため、ベクトル化するものがありません。
診断15517 インライン・アセンブリーで EBX/RBX レジスターが使用されているため、このサブルーチンのループはベクトル化できません。
診断15521 ループはベクトル化されませんでした: ループの制御フローを単純化したり、ループ外部で反復数を計算してください。
診断15523 ループはベクトル化されませんでした: ループ外部でループの反復数を計算できません。
診断15524 xxxx はベクトル化されませんでした: すべてのメモリー参照をアライメントされたベクトルロードにできなければ検索ループはベクトル化できません。
診断15527 ループはベクトル化されませんでした: xxxx への関数呼び出しはベクトル化できません。
診断15535 xxxx はベクトル化されませんでした: ループに switch 文が含まれています。if-else 文の使用を検討してください。
診断15537 ループはベクトル化されませんでした: 暗黙の FP 例外モデルが、切り捨てまたは整数除算/剰余に必要な SVML ライブラリーの使用を妨げています。コンパイラー・オプションやソースのディレクティブを変更して、fast FP モデルを有効にし、FP をマスクすることを検討してください。
診断15542 xxxx はベクトル化されませんでした: 内部ループがすでにベクトル化されています。
診断15511 ベクトルバージョン 'xxxx' (関数 'xxxx'、位置 <val>) の引数が不足しています。
診断15509 ベクトルバージョン 'xxxx' (関数 'xxxx'、位置 <val>) の引数が無関係です。
診断15513 ベクトルバージョン 'xxxx' (関数 'xxxx'、位置 <val>) の mask 引数の型が正しくありません。
診断15487 型変換: xxxx
診断15476 スカラーループのコスト: xxxx

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事