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

ドキュメントの情報

はじめに

1.  C コンパイラの紹介

2.  C コンパイラ実装に固有の情報

2.1 定数

2.1.1 整数定数

2.1.2 文字定数

2.2 リンカースコープ指示子

2.3 スレッドローカルな記憶領域指示子

2.4 浮動小数点 (非標準モード)

2.5 値としてのラベル

2.6 long long データ型

2.6.1 long long データ型の入出力

2.6.2 通常の算術変換

2.7 Switch 文内の Case 範囲

2.8 表明

2.9 サポートされる属性

2.10 警告とエラー

2.11 プラグマ

2.11.1 align

2.11.2 c99

2.11.3 does_not_read_global_data

2.11.4 does_not_return

2.11.5 does_not_write_global_data

2.11.6 dumpmacros

2.11.7 end_dumpmacros

2.11.8 error_messages

2.11.9 fini

2.11.10 hdrstop

2.11.11 ident

2.11.12 init

2.11.13 inline

2.11.14 int_to_unsigned

2.11.15 must_have_frame

2.11.16 nomemorydepend

2.11.17 no_side_effect

2.11.18 opt

2.11.19 pack

2.11.20 pipeloop

2.11.21 rarely_called

2.11.22 redefine_extname

2.11.23 returns_new_memory

2.11.24 unknown_control_flow

2.11.25 unroll

2.11.26 warn_missing_parameter_info

2.11.27 weak

2.12 事前に定義されている名前

2.13 errno の値の保持

2.14 拡張機能

2.14.1 _Restrict キーワード

2.14.2 _ _asm キーワード

2.14.3 __inline__inline__

2.14.4 __builtin_constant_p()

2.14.5 __FUNCTION____PRETTY_FUNCTION__

2.15 環境変数

2.15.1 PARALLEL

2.15.2 SUN_PROFDATA

2.15.3 SUN_PROFDATA_DIR

2.15.4 TMPDIR

2.16 インクルードファイルを指定する方法

2.16.1 -I- オプションによる検索アルゴリズムの変更

2.16.1.1 警告

2.17 フリースタンディング環境でのコンパイル

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

3.  C コードの並列化

4.  lint ソースコード検査プログラム

5.  型に基づく別名解析

6.  ISO C への移行

7.  64 ビット環境に対応するアプリケーションへの変換

8.  cscope: 対話的な C プログラムの検査

A.  機能別コンパイラオプション

B.  C コンパイラオプションリファレンス

C.  ISO/IEC C 99 の処理系定義の動作

D.  C99 の機能

E.  ISO/IEC C90 の処理系定義の動作

F.  ISO C データ表現

G.  パフォーマンスチューニング

H.  Oracle Solaris Studio C: K&R C と ISO C の違い

索引

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

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

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

表 2-5 MMX および拡張 x86 組み込み関数

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 用など) を呼び出すコードは、Solaris プラットフォームの場合はロードされませんし、Linux プラットフォームの場合は未定義の動作や不正な結果を伴って失敗する可能性があるので、注意してください。これらのプラットフォーム固有の組み込み関数を呼び出すプログラムは、それらの関数をサポートするプラットフォームにのみ配備してください。

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

#include <nmmintrin.h>

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