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

配列表記 (アレイ・ノーテーション) C/C++ 拡張の概要

配列表記 (アレイ・ノーテーション) は、インテル固有の C/C++ 言語拡張で、インテル® Cilk™ Plus 機能の一部です。

インテル® Cilk™ Plus は古い機能 (非推奨) です。

C/C++ 拡張は C/C++ のデータ並列の配列表記を提供します。次のような主な利点があります。

配列表記を使用する際、インテル® コンパイラーはベクトルコードを使用して実装します。

推奨する使用方法

アルゴリズムで配列の処理が必要で、配列要素の処理順が問題にならない場合は、配列表記を使用します。

配列表記の C/C++ 言語拡張はデフォルトで有効になっています。無効にするには、[Q]intel-extensions- コンパイラー・オプションの否定形を使用します。

アプリケーションで配列表記を使用するには、次の操作を行います。

  1. 配列表記言語拡張をアプリケーションのソースコードに挿入します。
  2. 最適化レベル O2 以上でアプリケーションをコンパイルし、ベクトル化を有効にします。デフォルトでは、コンパイラーはインテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2) 命令セットで定義された SIMD ベクトル命令を生成します。SSE2 以上の SIMD ベクトル命令を生成するには、ターゲット/アーキテクチャー固有のコンパイラー・オプションをコンパイルコマンドに追加します。

-O0 または -O1 (Linux* および macOS*)、あるいは /Od または /O1 (Windows*) を使用してアプリケーションをコンパイルすると、ベクトル化なしのシリアル・スカラー・コードが生成されます。

デフォルトでは、インテル® コンパイラーは配列表記言語拡張を有効にし、プログラムのデータ並列構造に基づいてベクトルコードを生成します。

配列表記は、すべての最適化レベルで動作します。-O0 オプション (Linux* および macOS*) または /Od オプション (Windows*) を指定すると、配列操作がシーケンシャル・ループにシリアル化され、配列表記を使用するアプリケーションのデバッグに役立ちます。

関連情報