JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: C++ ユーザーズガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I C++ コンパイラ

1.  C++ コンパイラの紹介

2.  C++ コンパイラの使用方法

3.  C++ コンパイラオプションの使い方

パート II C++ プログラムの作成

4.  言語拡張

4.1 リンカースコープ

4.1.1 Microsoft Windows との互換性

4.2 スレッドローカルな記憶装置

4.3 例外の制限の少ない仮想関数による置き換え

4.4 enum の型と変数の前方宣言の実行

4.5 不完全な enum 型の使用

4.6 enum 名のスコープ修飾子としての使用

4.7 名前のない struct 宣言の使用

4.8 名前のないクラスインスタンスのアドレスの受け渡し

4.9 静的名前空間スコープ関数のクラスフレンドとしての宣言

4.10 事前定義済み __func__ シンボルの関数名としての使用

4.11 サポートされる属性

4.11.1 __packed__ 属性の詳細

4.12 Intel MMX および拡張 x86 プラットフォーム組み込み関数のためのコンパイラサポート

5.  プログラムの編成

6.  テンプレートの作成と使用

7.  テンプレートのコンパイル

8.  例外処理

9.  プログラムパフォーマンスの改善

10.  マルチスレッドプログラムの構築

パート III ライブラリ

11.  ライブラリの使用

12.  C++ 標準ライブラリの使用

13.  従来の iostream ライブラリの使用

14.  ライブラリの構築

パート IV 付録

A.  C++ コンパイラオプション

B.  プラグマ

用語集

索引

4.12 Intel MMX および拡張 x86 プラットフォーム組み込み関数のためのコンパイラサポート

mmintrin.h ヘッダーファイル内で宣言されたプロトタイプは Intel MMX 組み込み関数をサポートし、互換性のために提供されています。

次の表に示すように、特定のヘッダーファイルは、追加の拡張プラットフォーム組み込み関数のプロトタイプを提供します。

表 4-2 ヘッダーファイル

x86 プラットフォーム
ヘッダーファイル
SSE
mmintrin.h
SSE2
xmmintrin.h
SSE3
pmmintrin.h
SSSE3
tmmintrin.h
SSE4A
ammintrin.h
SSE4.1
smmintrin.h
SSE4.2
nmmintrin.h
AES 暗号化および PCLMULQDQ
wmmintrin.h
AVX
immintrin.h

各ヘッダーファイルは、表内でそれより前にあるプロトタイプをインクルードします。たとえば、SSE4.1 プラットフォーム上では、smmintrin.htmmintrin.h をインクルードし、これは pmmintrin.h をインクルードし、この関係が mmintrin.h まで続くため、smmintrin.h をユーザープログラムにインクルードすることで、SSE4.1、SSSE3、SSE3、SSE2、SSE、および MMX プラットフォームをサポートする組み込み関数名が宣言されます。

ammintrin.h は AMD が発行したものであり、Intel 組み込み関数ヘッダーからは一切インクルードされないことに注意してください。ammintrin.hpmmintrin.h をインクルードするため、ammintrin.h をインクルードすれば、すべての AMD SSE4A だけでなく、Intel の SSE3、SSE2、SSE、および MMX 関数も宣言されます。

また、単一の Oracle Solaris Studio ヘッダーファイル sunmedia_intrin.h は、Intel ヘッダーファイルの宣言はすべてインクルードしますが、AMD ヘッダーファイル ammintrin.h はインクルードしません。

ホストプラットフォーム (SSE3 など) に配備され、任意のスーパーセット組み込み関数 (AVX についてのものなど) を呼び出すコードは、Oracle Solaris プラットフォームにロードされず、Linux プラットフォーム上で未定義の動作または正しくない結果が発生して失敗することがあることに注意してください。これらのプラットフォーム固有の組み込み関数を呼び出すプログラムは、それらの関数をサポートするプラットフォームにのみ配備してください。

これらはシステムヘッダーファイルであり、次の例に示すようにプログラムに現れるようにしてください。

#include <nmmintrin.h>

詳細については、最新の Intel C++ コンパイラリファレンスガイドを参照してください。