インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド

インテル® グラフィックス・テクノロジー用の算術関数

二項算術演算を実行します。このトピックは、インテル® グラフィックス・テクノロジー向けのインテル® 64 アーキテクチャーと IA-32 アーキテクチャーにのみ適用されます。

構文

加算

char _gfx_add_i8(char src0, char src1, unsigned int flags);

short _gfx_add_i16(short src0, short src1, unsigned int flags);

int _gfx_add_i32(int src0, int src1, unsigned int flags); float _gfx_add_f32(float src0, float src1, unsigned int flags); double _gfx_add_f64(double src0, double src1, unsigned int flags);

減算

char _gfx_sub_i8(char src0, char src1, unsigned int flags);

short _gfx_sub_i16(short src0, short src1, unsigned int flags);

int _gfx_sub_i32(int src0, int src1, unsigned int flags);

float _gfx_sub_f32(float src0, float src1, unsigned int flags);

double _gfx_sub_f64(double src0, double src1, unsigned int flags);

乗算

char _gfx_mullo_i8(char src0, char src1, unsigned int flags);

short _gfx_mullo_i16(short src0, short src1, unsigned int flags);

int _gfx_mullo_i32(int src0, int src1, unsigned int flags);

float _gfx_mul_f32(float src0, float src1, unsigned int flags);

double _gfx_mul_f64(double src0, double src1, unsigned int flags);

パラメーター

src0src1

二項演算のオペランド

flags

操作の追加のセマンティクスを示すフラグ。 設定可能な値は以下のとおりです。

GFX_SAT

飽和モードで実行します。

0

非飽和モードで実行します。

説明

これらの関数は、flags 引数で指定された追加のセマンティクスを使用して、さまざまな型のオペランド src0src1 の二項演算を行います。組込み関数の型のサフィックスは演算の型を示しています。

現在、次の演算がサポートされています。

演算

基本セマンティクス

add

src0 + src1

sub

src0 - src1

mullomul

src0 * src1

mullocharshort、および int 型で利用できます。mullo では、結果がデスティネーションの型の幅に切り捨てられます。

mul は浮動小数点型で利用できます。

flags の値を指定することで、演算を飽和モードまたは非飽和モードで実行できます。 飽和モードでは、演算結果がデスティネーションの型の飽和範囲を超える場合、結果は範囲内の最も近い境界になります。 次の表は、それぞれの型の飽和範囲を示します。

飽和範囲

char

-128 ~ 127

short

-32768 ~ 32767

int

-2147483648 ~ 2147483647

floatdouble

-1 ~ 1

次に例を示します。

この組込み関数は、ベクトルループの配列表記のようなベクトル・コンテキストで利用できます。その場合、組込み関数はコンパイラーによってベクトル化され、独立した演算が並列に実行されます。

戻り値

操作の結果。

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804


このヘルプトピックについてのフィードバックを送信