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

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

二項算術演算を実行します。このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする場合にのみ適用されます。

構文

加算

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

次に例を示します。

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

戻り値

操作の結果。